当我点击按钮时,我正在尝试打开一个新窗口。在这个新窗口中有一个表单。表单包含用于在第一个窗口中创建JScrollPane的信息。我想在用户完成表单中的所有元素时创建JScrollPane。我尝试使用Thread,但这不起作用。
这是我的代码:
f(e.getSource() == menuAjoutern){
JScrollPane scrollpane;
nomniveaux++;
Frame p = new Frame();
p.setContentPane(new PanelInfoCrea());
p.setVisible(true);
/*Thread t = new Thread(new Runnable() {
@Override
public void run() {
Frame p = new Frame();
p.setContentPane(new PanelInfoCrea());
p.setVisible(true);
}
});
t.start();
Frame.creation = true;
while(Frame.creation) {
try {
System.out.println("oui");
Thread.sleep(1);
} catch (InterruptedException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}
}*/
scrollpane = new JScrollPane(Frame.p.getListeNiveau().get(Frame.p.getListeNiveau().size()-1).dessinerPlateauCreation(this.getWidth(), this.getHeight(), hauteur));
pane.add("niveau "+nomniveaux ,scrollpane);
}
这里我尝试等待boolean为false来创建JScrollPane。第二个窗口关闭时的布尔更改状态。你有什么想法吗?
答案 0 :(得分:1)
第二个窗口应该是模态JDialog或JOptionPane(实际上是模态对话框)。这样,当第二个窗口显示时,调用代码将停止,直到第二个窗口不再可见时才会恢复。