java - 新窗口无法加载

标签 java wait

我需要一些帮助,我有一个在单击按钮时执行的方法,该方法然后打开一个新窗口,更新另一个类中的变量,然后该方法从类中获取该变量,然后使用它。

加载的窗口是空白的,似乎 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/

相关文章:

Java字符串三角形

python - 轮询最大 wait_time,除非 python 2.7 中的条件

bash - 如何在 bash 中等待多个子进程完成,并在任何子进程以代码 !=0 结束时返回退出代码 !=0?

java - 流集中的正则表达式

Java 集合通过可重写变量提供类型

java - 一段时间后,Spring Boot 内存使用率高

multithreading - Guava ListenableFuture <Object>如何等待来自堆栈的信息?

bash - powershell bash 循环随机卡住等待键盘输入

go - c 程序 fork 并等待 golang 进程状态

java - Guice 绑定(bind)提供程序未用于依赖项实现