如何使线程不冻结整个JFrame。爪哇

【字号: 日期:2024-02-22浏览:50作者:雯心
如何解决如何使线程不冻结整个JFrame。爪哇?

使用其他线程来执行此任务。如果在主UI线程中执行此操作,则它将冻结。例如,您可以执行以下操作

new Thread() {@Overridepublic void run() { try {Thread.sleep(Integer.parseInt(delayField.getText()) * 1000);System.out.println('Hello!'); } catch (InterruptedException ex) {Thread.currentThread().interrupt(); }} }.start();

在对Robin和Marko提出明智建议之后,我正在用更好的解决方案来更新答案。

ActionListener taskPerformer = new ActionListener() {public void actionPerformed(ActionEvent evt) {System.out.println('Hello!');} }; javax.swing.Timer t = new javax.swing.Timer(Integer.parseInt(delayField.getText()) * 1000, taskPerformer); t.setRepeats(false); t.start();解决方法

嘿,我只需要回答一个问题…我将如何使以下代码不冻结整个JFrame?

try {Thread.sleep(Integer.parseInt(delayField.getText()) * 1000);System.out.println('Hello!'); } catch(InterruptedException ex) {Thread.currentThread().interrupt(); }

相关文章: