在jButton的actionPerformed方法中,我有以下代码:
btnLogin.setText("Logging In...");
btnLogin.setPreferredSize(new Dimension(110, 29));
btnLogin.setEnabled(false);
//more stuff here, irrelevant to this
这样可行,但只有在方法完成后才会产生视觉效果(重新绘制)。
如果在//这里有更多的东西,我的代码需要很长时间才能完成,btnLogin更改的效果在代码完成后才会生效。
我尝试输入:
this.revalidate();
this.repaint();
直接在前3行和其他多个解决方案之后,尝试强制该死的东西重新绘制DURING方法,但无论如何,它只发生在最后!
我注意到的另一件事是,如果我在方法的中间调用一个JOptionPane,框架将重新绘制(在后台),这很有趣。
在我需要调用的方法结束时会自动发生什么事情才能在方法中实现?
提前致谢!
答案 0 :(得分:2)
您使用长时间运行的代码阻止Swing事件线程,这会阻止Swing绘制文本更改。解决方案: