现在,我不知道这是可能的,甚至来完成我想要做的最好的方式,但基本上我创建一个非常简单的Swing GUI的一个非常简单的模拟程序.
在每轮模拟之后,界面上的一些按钮被启用以供用户进行更改,然后用户可以按下"继续"按钮以再次开始模拟.模拟本身基本上是一个while循环,需要在继续之前等待用户操作.我的问题是如何让程序停止并等到用户按下"继续"按钮?如果不清楚我是否还能提供更多细节,请告诉我!
编辑:
我将在这里添加一些简化的代码,所以这可能会更有意义.该程序分为两部分,模拟类和视图.因此,当模拟在其类中进行时,要按下的按钮位于视图类中.
模拟类:
SimulationView view = new SimulationView(); // extends JFrame
while (!some_condition) {
// code
// need user action via button press here before continuing!
}
Run Code Online (Sandbox Code Playgroud)
很可能最好的方法是在方法中包含一轮模拟,然后从附加到所需按钮的动作侦听器执行.
编辑后:有人需要首先控制模拟,因此您可以执行以下操作:
SimluationClass
{
public int startSim()
{
...
}
}
class SimulationView
{
SimulationClass sim = new SimulationClass();
private void init()
{
JButton button = new JButton("Start");
button.addActionListener(new ActionListener() {
void actionPerformed(...)
{
sim.startSim()
}
});
}
}
Run Code Online (Sandbox Code Playgroud)
请记住,虽然这会冻结你的gui,因为sim方法将从事件线程执行.
| 归档时间: |
|
| 查看次数: |
5911 次 |
| 最近记录: |