执行完之后会发生什么actionPerformed
?执行后,有什么方法可以返回程序的主类actionPerformed
吗?
这是代码示例:
public final class JavaGame extends JFrame {
public JavaGame(){
int x = cache();
JButton butt = new JButton("NEW");
newG gameX = new newG();
butt.addActionListener(gameX);
}
public class gameFunction implements ActionListener{
@Override
public void actionPerformed(ActionEvent e){
if(e.getSource() == butt){
//do something logic here. Like go to another stage of the game
JOptionPane.showMessageDialog(null, Success!");
}
}
}
public cache(){
return 1;
}
public static void main(String[] args) {
new JavaGame();
}
}
之后actionPerformed
运行,接下来会发生什么?
在我的真实代码中,actionPerformed
运行后,我的游戏阶段仍然相同。如何返回到main
新的阶段,而无需再次关闭和打开程序?
在主体中,您显示JFrame:
new JavaGame().setVisible(true);
然后您从main返回。
在后台运行着一个名为EDT的事件调度线程。在该线程上单击按钮,进行重绘等操作。
这应该在短时间内完成,以保持用户界面的响应性,而不是冻结。
因此,您需要工作以事件驱动:您通常可以为某些特定事件添加侦听器,例如关闭JFrame,菜单项,按钮。这些侦听器将通过事件对象进行调用,以指定发生了什么情况。您调用了addActionListener。
控制流程是使按钮单击保持响应,并在稍后进行一些艰苦的工作:
@Override
public void actionPerformed(ActionEvent evt) {
EventQueue.invokeLater(new Runnable() {
@Override
public void run() {
JavaGame.this.createANewAvatar();
}
});
}
然后在某个地方有一个
private void createNeewAvatar() { ... }
这种难以遵循的控制流(因为是零散的)需要良好的命名和有组织的来源。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句