现在,我不确定这是否可能,甚至是完成我想要做的事情的最佳方法,但基本上我正在使用一个非常简单的 Swing GUI 创建一个非常简单的模拟程序。
每轮模拟结束后,界面上的一些按钮都会启用,供用户进行更改,然后用户可以按“继续”按钮再次开始模拟。模拟本身基本上是一个 while 循环,需要等待用户操作才能继续。我的问题是如何让程序停止并等待用户按下“继续”按钮?如果不清楚,请告诉我是否有更多详细信息,我可以提供!
Edit:
我将在这里添加一些简化的代码,这样也许会更有意义。该程序分为两部分,模拟类和视图。因此,当模拟发生在视图类中时,要按下的按钮位于视图类中。
模拟类:
SimulationView view = new SimulationView(); // extends JFrame
while (!some_condition) {
// code
// need user action via button press here before continuing!
}
最有可能的最佳方法是将一轮模拟包含在一个方法中,然后从附加到您想要的按钮的动作侦听器执行该模拟。
编辑后:
首先需要有人控制模拟,因此您可以执行以下操作:
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 方法将从事件线程执行。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)