gpt4 book ai didi

java - 如何将 WindowListener 添加到外部事件

转载 作者:行者123 更新时间:2023-12-01 16:04:00 25 4
gpt4 key购买 nike

这是我开发的代码。这是保存并执行我的游戏的每个外部 JFrame 的主程序。 ChooseGender 是一个外部程序,只不过是一个 JFrame 及其组件。

我的目标是当chooseGender执行时,它有2个选项按钮(男性,女性),当用户选择一个时,actionListener会将框架设置为setVisible(false),然后让WindowClosing事件打开下一个JFrame ,(选择种族)。更多帧会发生这种情况,但这 2 个帧用于学习目的。我很感谢您提前提供的帮助。 :)

所以我的问题是,我该如何在这个程序中添加一个 WindowListener 来选择性别,以便我可以关闭它并打开下一个程序?

package javagame;

import java.awt.EventQueue;
import java.awt.HeadlessException;
import java.awt.event.WindowEvent;
import java.awt.event.WindowListener;
import javax.swing.JFrame;

public class Main implements WindowListener {


public static void main(String[] args) {

EventQueue.invokeLater(new Runnable() {

public void run() {
new chooseGender().setVisible(true);
}
});

EventQueue.invokeLater(new Runnable() {

public void run() {
new chooseRace().setVisible(false);
}
});
}

最佳答案

实现这一点的一个简单方法可能只是使用模态 JDialogs .

代码类似于以下内容:

main {

new chooseGender().setVisible(true);
new chooseRace().setVisible(true);
new chooseAge...

}

您可能想要实现一个类似于以下内容的 WidowListener:

public class OpenNewWindowWindowListener extends WindowAdapter {
public void windowClosing(WindowEvent e){
// in here open the next window.
}
}

并将该窗口监听器添加到正确的框架:

// In the constructor for the JFrame
addWindowListener(new OpenNewWindowListener());

并且,每个类都会扩展 JDialog,并且在其构造函数中使用 setModal(true) .

关于java - 如何将 WindowListener 添加到外部事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3086723/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com