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