我有一扇窗户,上面有各种各样的面板。在一个面板上,我有一个名为dogTalk的JTextArea,我在这里更新它的文本。在用户点击按钮时,我希望文本添加我在SetText中提到的内容。
System.out.println("We're working");
dogTalk.setText(dogTalk.getText() + "\nWow bone very wow much thanks bye.");
try
{
TimeUnit.SECONDS.sleep(4);
}
catch ( InterruptedException e1 )
{
// TODO Auto-generated catch block
e1.printStackTrace();
}
System.exit(0);
与其调用system.exit
,不如让应用程序优雅地消失。当没有非守护进程线程仍处于活动状态时,应用程序将终止。守护进程只是一个标志,用于确定如果该线程仍在运行,JVM是否应该终止;如果非守护进程线程正在运行,JVM仍将终止。
也就是说,问题是在事件调度线程上调用sleep
。
EDT处理Swing和AWT组件的所有更新和呈现,并执行事件侦听器中指定的行为(如ActionListener#ActionPerformed(ActionEvent)
)。如果您导致它阻塞(通过Hibernate或其他形式的阻塞),它将无法处理更新和呈现。当您调用settext
时,EDT需要能够调整文本。你通过强迫它睡觉来阻止它。
Java 8+
public void actionPerformed(ActionEvent e) {
dogTalk.setText(...);
new Thread(() -> {
TimeUnit.SECONDS.sleep(4);
frame.dispose();
}).start();
}
在Java8之前
public void actionPerformed(ActionEvent e) {
dogTalk.setText(...);
new Thread(new Runnable() {
public void run() {
TimeUnit.SECONDS.sleep(4);
frame.dispose();
}
}).start();
}
如果我直接在构造函数中添加面板,它可以正常工作,但在控制器中则不行。当我在菜单上点击“Reservas”或“Contabilidad”选项之一时,我想更改显示的面板并查看其他内容。 这是我的观点 } 这是我的控制器 } panel对象只有一个jlabel,其中有一个hello要测试
问题内容: 我有如下代码: 但是,不是在每次调用setText时在循环的每次迭代后更新文本区域,而是仅在完成所有任务运行后才更新文本。为什么会发生这种情况,我该如何解决? 问题答案: 您可能正在使用Swing线程,该线程正在等待代码执行才能更新UI。尝试为该循环使用单独的线程。
问题内容: 我有一个嵌套的字典,我们称它为字典d。该词典的键是一个整数,每个键的值是另一个词典。我正在python 2.7上尝试一个简单的代码来更新一个外键的值,但似乎它正在更新外键的ALL的值。 希望这些代码将使其更易于理解。这是我的意见。 然后是输出: 您会看到,我只为d [0] [‘mean’]分配了‘1’,但是d [1] [‘mean’]也有所更新。如果我增加d键的数量,它将只更改所有d键
问题内容: 这段代码: 使我的计算机挂起5秒钟,然后打印出0-9,而不是每半秒打印一次数字。难道我做错了什么? 问题答案: ,默认情况下,在内部打印到并缓冲要打印的输出。 通常是否由文件确定输出是否被缓冲,但是如果关键字参数为true,则将强制刷新流。 在版本3.3中更改:添加了关键字参数。 报价文件, 交互式时,标准流是行缓冲的。否则,它们像常规文本文件一样被块缓冲。 因此,就您而言,您需要像这
来自django。数据库导入模型 类抱怨(模型。模型): “”“您需要表单提交时的成功视图。这将在用户提交表单后呈现感谢消息。然后在URL.py上,导入成功视图,然后添加路径('success',successView,name='success'),”“”def successView(请求):返回呈现(请求,“tem/success.html”)
choice5是一个JComboBox 从choice5中选择项目时 被称为(编辑:对于我可以选择的每个项目,我可能有一个不同的jtable我想要显示) 编辑(SSCCE): MyTableModel