我有一个有各种面板的窗口。在一个面板上,我有一个名为 dogTalk 的 JTextArea,我在其中更新了它的文本。用户单击按钮后,我希望文本在 setText 中添加我在下面提到的内容。
我使用了 sleep 方法,以便用户可以阅读我更新的文本,并且窗口可以在 4 秒内自动关闭。(我不希望用户能够在关闭时关闭窗口,因此我没有使用 Jframe.EXIT_ON_CLOSE 而是使用了 JFrame.DO_NOTHING_ON_CLOSE 并在 sleep 和 system.ext(0) 的帮助下使用了我的自动关闭)
但是,我注意到 sleep 方法不允许 dogTalk 得到更新。不过,它会打印出“我们正在工作”,所以我猜这是窗口的问题?我知道睡眠是导致问题的原因,而不是我的代码中的其他问题,因为当我注释掉睡眠和 system.exit(0) 并测试我的 if 语句是否正在执行时,我注意到 JTextArea 确实更新了我的语句就好了!请你帮助我好吗?
if (e.getActionCommand().equals("buybone")) {
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);
}