1
里面一个JButton的actionPerformed方法,我有以下代码:如何使按钮更改repaint -during-方法,而不是之后?
btnLogin.setText("Logging In...");
btnLogin.setPreferredSize(new Dimension(110, 29));
btnLogin.setEnabled(false);
//more stuff here, irrelevant to this
这工作,但只需要视觉效果(被粉刷),一旦该方法完成。
如果在// more stuff这个区域中有我需要很长时间才能完成的代码,那么在代码完成之前,btnLogin更改的效果不会生效。
我已经试过打字:
this.revalidate();
this.repaint();
第3行,以及其他多种解决方案后直接,试图迫使该死的东西重新绘制方法的过程中,但不管是什么,它只是发生在结束!
我注意到的另一件事是,如果我在方法中间调用JOptionPane,框架将重绘(在后台),所以这很有趣。
什么是自动发生在方法的结尾,我需要调用以使其在方法期间发生?
在此先感谢!
如何更改在Swing事件线程中发生的按钮属性更改行而不是在方法线程中? – Heaney
@海尼:我解释了你需要做的上面。 –
@Heaney:你已经**正在**调用Swing事件线程上的更改代码。你需要做的是从这个线程调用长时间运行的代码。 –