swing改变UI正确的做法

来源:互联网 发布:国际版淘宝网店怎么开 编辑:程序博客网 时间:2024/06/09 21:38

众所周知,swing线程是不安全的,在编程的时候,特别要注意这点。我们可以这么写swing的线程。

public class Test {    private static void createAndShowGUI() throws IOException {        new MyFrame();    }    public static void main(String[] args) {        javax.swing.SwingUtilities.invokeLater(new Runnable() {            public void run() {                try {                    createAndShowGUI();                } catch (IOException e) {                    e.printStackTrace();                }            }        });    }}class MyFrame extends JFrame {    public MyFrame() {    }}

大家应该也知道,要想改变swing的UI,比如改变按钮的大小、改变文本的字体、向容器中增加控件等等不能在swing线程以外的线程中操作。正确的做法是:

new Thread(new Runnable() {    public void run() {        SwingUtilities.invokeLater(new Runnable() {            @Override            public void run() {                // 在这里写改变UI的操作            }        });    }}).start();

当然,要是在其他线程中改变UI是不会报错的,但不会报错不代表正确
在安卓开发中,则必须用UI线程操作UI,不然会发生错误

1 0