行き詰まり利用時のsetTextにJTextAreaにスイング
-
28-10-2019 - |
質問
私は、以下のJavaプログラムを開始し約50%発の試み.同時に縫い目に行き詰まりを背景にせずに表示する任意す。いなぞの問題は、setText法のJTextAreaオブジェクトです。その他のクラスのようにJButton作setTextがJTextAreaデッドロック.誰でもできるので説明したい何が起こっていると何が違うと、以下のコード:
public class TestDeadlock extends JPanel {
private JTextArea text;
TestDeadlock(){
text = new JTextArea("Test");
add(text);
updateGui();
}
public static void main(String[] args){
JFrame window = new JFrame();
window.setTitle("Deadlock");
window.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
window.add(new TestDeadlock());
window.pack();
window.setVisible(true);
}
public synchronized void updateGui(){
SwingUtilities.invokeLater(new Runnable(){
public void run(){
System.out.println("Here");
text.setText("Works");
System.out.println("Not Here");
}
});
}
}
解決
メインのメソッドに包まれた入り invokeLater
または invokeAndWait
, この基本的なスイングのルールを作成 スイングGUIにEventDispashThread
public static void main(String[] args) {
SwingUtilities.invokeLater(new Runnable() {
public void run() {
JFrame window = new JFrame();
window.setTitle("Deadlock");
window.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
window.add(new TestDeadlock());
window.pack();
window.setVisible(true);
}
});
}
所属していません StackOverflow