我有class LevenbergForm extends JFrame一个功能calculate().
一般来说,for在该函数中有一个循环,在每次迭代中我需要创建一个循环new JFrame,显示它并等到按下按钮.
我得到的问题JFrame是没有绘制它的组件.里面都是白色的.只有在calculate()结束时才会画出来.
JFrame当我还在那个for循环中时如何画画?
如何阻止它直到button按下?(可选的)
void calculate(boolean stepByStep) {
for (int i = 0; i < n; ++i) {
//...
graph = new JFrame();
graph.setContentPane(chartPanel);
graph.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
graph.pack();
graph.setVisible(true);
graph.setLocationRelativeTo(null);
//Draw JFrame and stop for loop until button pressed
//...
}
}
Run Code Online (Sandbox Code Playgroud)
不要使用在创建和显示时是非阻塞的JFrame.而是使用一个模态对话框,例如JOptionPane,它会阻止当前线程的流程,直到它被处理完毕.
话虽如此,你的是一个不方便且可能令人讨厌的程序设计.为什么不简单地使用Swing Timer来改变显示的JLabel文本的状态?
| 归档时间: |
|
| 查看次数: |
53 次 |
| 最近记录: |