我需要一些帮助,我有一个在单击按钮时执行的方法,该方法然后打开一个新窗口,更新另一个类中的变量,然后该方法从类中获取该变量,然后使用它。
加载的窗口是空白的,似乎 wait() 函数导致线程在新窗口加载之前停止。
private void autoFillUsersActionPerformed(java.awt.event.ActionEvent evt) {
publicLesson pL= new publicLesson();
new dateSelect().setVisible(true);
try{
synchronized(this){
this.wait();
}
}
catch(Exception e){
}
int var= pL.getAmount();
System.out.println("var ="+var);
DefaultTableModel defaultModel = (DefaultTableModel) pupilTable.getModel();
for (int i = 0; i <= (userCountAmount - 1); i++) {
defaultModel.setValueAt(var, 5, i);
System.out.println("BeingSet");
}
}
最佳答案
您正在阻止Event Dispatch Thread 。通过不允许 EDT 移过 wait
调用,无法处理任何事件,这意味着无法绘制任何内容。
不要使用新窗口,而是尝试使用 modal dialog 。模态对话框会阻止对其他顶级组件的所有访问(取决于模态类型),直到它们被正确处理为止。
关于java - 新窗口无法加载,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11403041/