【发布时间】:2021-03-25 03:11:59
【问题描述】:
我正在编写一个程序,其中我应该有一个游戏的标题屏幕,您可以在其中单击一个“播放”按钮,该按钮打开一个不同的窗口并同时关闭另一个窗口。我正在尝试做的是利用 ActionListener 作为按钮,使当前窗口不可见,同时使不同的窗口可见。我很难让它工作并且遇到很多语法和逻辑错误。我很确定有更好的方法可以做到这一点,所以任何指针都将不胜感激。我正在使用摆动。 免责声明:初学者 java 级程序员大声笑:p
我的第一堂课包括这个(不包括我的进口):
public static void main(String[] args) {
//Creating the Frame
MyFrame menuFrame = new MyFrame();
// (here i have code for the frame in my actual program)
}
static class MyFrame extends JFrame {
MyFrame () {
this.setDefaultCloseOperation
(JFrame.EXIT_ON_CLOSE);
this.getContentPane().add(new JLabel(new ImageIcon("logo.png")));
this.pack();
this.setVisible(true);
new EightOff.returnHomeListener (this);
}
}
}
打开另一个框架的我的另一个类包括以下按钮和动作侦听器,我试图从 GameMenu 引用我的框架:
public class EightOff
{
private static JButton returnHome = new JButton("Return to Game Menu");
public static class returnHomeListener implements ActionListener {
public returnHomeListener(GameMenu.MyFrame myFrame) {
}
@Override
public void actionPerformed(ActionEvent e)
{
returnHomeListener (JFrame visibleFrame) {
visibleFrame.toSetVisible (true);
}
}
}
}
【问题讨论】:
-
Swing 有一个CardLayout 布局管理器,允许您使用一个 JFrame,但将底层 JPanel 从标题 JPanel 切换到游戏 JPanel。 Oracle 教程Creating a GUI With JFC/Swing 将教您创建 Swing GUI 的正确方法。