JButton通过actionPerformed方法可以完成的动作是否受到限制?

时间:2019-03-29 10:28:12

标签: java jbutton actionlistener

我的Java程序应该通过JButton控制交通灯(另一个类创建的对象)。按下JButton时,应该通过调用交通灯对象的方法,将交通灯从红色循环到绿色,然后从黄色循环回到红色。

交通信号灯对象具有.setGreen();方法。 ,.setYellow(); ,.setRed();和.wait(int毫秒);并通过JFrame直观显示。 默认情况下,启动时将其设置为红色。 如果我尝试通过JButton以外的方法来循环交通信号灯,则该程序就可以正常工作。例如,当使用for循环时,将产生预期的结果。 我当前的方法是在循环方法上调用JButton,该方法将交通灯对象移交给循环方法。在这种方法中,应该实现交通灯周期。 但是,此方法可以正确执行的操作数量似乎受到限制。如果循环方法仅包含两个指令,例如.wait(1000);和.setGreen(); ,则正确产生了预期的输出。 在打包更多有关此方法的说明后,它不再按预期工作。

// component ...
// can error and only serves the purpose of an idea
computed: {
 gridData: {
   get: function() {
     return window.gridData || {} 
   },
   set: function(dataObj){
     window.gridData = dataObj
   }
 }
}
final JButton button_cycle = new JButton("Begin cycle");
        frame.add(button_cycle);
        ActionListener alcycle= new ActionListener() {
            @Override public void actionPerformed( ActionEvent button_cycle) {
                { 
                cycle(myLight);
                    }
            }
        };
                button_cycle.addActionListener(alcycle);   

按下按钮后的预期结果是交通信号灯(默认为红色),等待1秒,切换为绿色,再等待1秒,切换为黄色,再等待1秒,再切换回红色。 运行该程序会导致JFrame中的可视交通灯保持红色3秒钟,并且仅执行最后一个.set操作。如果循环方法中的最后一个操作更改为myLight.setYellow();例如,交通信号灯保持红色3秒钟,然后切换为黄色。

0 个答案:

没有答案