swing note

来源:互联网 发布:qq群优化软件 编辑:程序博客网 时间:2024/06/05 05:59

1、java.awt.window

     方法:

dispose

public void dispose()
释放由此 Window、其子组件及其拥有的所有子组件所使用的所有本机屏幕资源。即这些 Component 的资源将被破坏,它们使用的所有内存都将返回到操作系统,并将它们标记为不可显示。

通过随后调用 packshow 重新构造本机资源,可以再次显示 Window 及其子组件。重新创建的Window 及其子组件的状态与释放Window 时这些对象的状态一致(不考虑这些操作之间的其他更改)。

:当 Java 虚拟机 (VM) 中最后的可显示窗口被释放后,虚拟机可能会终止。有关更多信息,请参阅 AWT Threading Issues。

另请参见:
Component.isDisplayable(),pack(),show()

2、javax.swing.JPanel

     方法:

setBorder
public void setBorder(Border border)
设置此组件的边框。Border 对象负责定义组件的 insets(直接对组件重写所有 insets 设置),并且可选地呈现这些 insets 范围内的边框装饰。要为 swing 组件创建有装饰的和无装饰的区域(例如边距和填充),应该使用边框(而不是 insets)。在单个组件中可使用复合边框来嵌套多个边框。

虽然从技术上讲可以在继承自 JComponent 的所有对象上设置边框,但是很多标准 Swing 组件的外观实现无法正常地使用用户设置的边框。通常,如果希望在标准的 Swing 组件而不是JPanelJLabel 上设置边框时,建议将组件放入 JPanel 中,并在JPanel 上设置边框。

这是一个绑定属性。

参数:
border - 要为此组件呈现的边框
另请参见:
Border,CompoundBorder

for examlpe:buttonPanel.setBorder(BorderFactory.createTitledBorder(BorderFactory.createLineBorder(Color.blue,2), "借用物品系           统",TitledBorder.CENTER,TitledBorder.TOP)) ;

                                                                         

 

3、进度条(JProgressBar)

public class ProgressBarDemo implements ActionListener,ChangeListener{    JFrame f = null;    JProgressBar progressbar;    JLabel label;    Timer timer;    JButton b;        public ProgressBarDemo()                               {        f = new JFrame("progressbar Example");        Container contentPane = f.getContentPane();                label = new JLabel(" ",JLabel.CENTER);        progressbar = new JProgressBar();        progressbar.setOrientation(JProgressBar.HORIZONTAL);        progressbar.setMinimum(0);        progressbar.setMaximum(100);        progressbar.setValue(0);        progressbar.setStringPainted(true);        progressbar.addChangeListener(this);        progressbar.setPreferredSize(new Dimension(200,30));        progressbar.setBorderPainted(false);                JPanel panel = new JPanel();        b = new JButton("Start");        b.addActionListener(this);        panel.add(b);                timer = new Timer(1000,this);                contentPane.add(panel,BorderLayout.NORTH);        contentPane.add(progressbar,BorderLayout.CENTER);        contentPane.add(label,BorderLayout.SOUTH);                f.pack();        f.setVisible(true);                f.addWindowListener(new WindowAdapter() {            public void windowClosing(WindowEvent e) {                System.exit(0);            }        });    }        public static void main(String[] args)    {        new ProgressBarDemo();    }        public void actionPerformed(ActionEvent e)    {        if(e.getSource() == b)        {            timer.start();        }                    if(e.getSource() == timer)        {            int value = progressbar.getValue();            if( value < 100)            {                value++;                progressbar.setValue(value);            }            else            {                timer.stop();                progressbar.setValue(0);            }        }    }                public void stateChanged(ChangeEvent e1)    {        int value = progressbar.getValue();                if(e1.getSource() == progressbar)        {            label.setText("目前已完成进度:"+Integer.toString(value)+" %");         }    }}

 

 

 

原创粉丝点击