如何在Java GUI上创建不同的窗口?[关闭]

z3yyvxxp  于 2023-05-12  发布在  Java
关注(0)|答案(1)|浏览(136)

已关闭,此问题需要更focused。目前不接受答复。
**想改善这个问题吗?**更新问题,使其仅通过editing this post关注一个问题。

昨天关门了。
Improve this question
所以我已经创建了一个游戏,我只是完成了项目,但现在,然后在结束时,我意识到我需要有一个主屏幕,玩家可以选择按下开始按钮或设置。我最初的计划是创建另一个类,它有一个新的主屏幕框架,名为frame。在这个类中,我实现了ActionListener接口并创建了一个开始按钮。如果开始按钮被按下,然后隐藏或处置,并创建一个新的GamePanel示例。然后在GamePanel的ActionListener中,我说如果菜单按钮被按下,则处理并创建屏幕的新示例。
一切都按计划进行,但我又一次意识到JFrame的图标在我的任务栏上像圣诞灯一样 Flink 。当我在主屏幕框架中按下开始时,JFrame被处理,因此它从任务栏中消失,然后立即再次出现,因为另一个框架被打开(这是非常烦人的)。我来这里是想问你们,我现在没时间了,有没有别的简单的办法?我试过使用不同的JPanel,但它太复杂了。

public class Screen extends JPanel implements ActionListener {
    JButton startButton = new JButton("Start");
    JFrame frame = new JFrame();

    HScreen() {
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        frame.setSize(new Dimension(600, 400));
        frame.setLayout(null);
        frame.setVisible(true);
        frame.setResizable(false);
        frame.add(startButton);
        startButton.setBounds(250, 90, 100, 50);
        startButton.addActionListener(this);

    }

    @Override
    public void actionPerformed(ActionEvent e) {
        if (e.getSource() == startButton) {
            frame.dispose();
            new GamePanel();
        }

    }

    public static void main(String[] args) {
        new HScreen();
    }

}```
kgsdhlau

kgsdhlau1#

您可以考虑使用CardLayout在不同的JPanel之间切换,而不是为每个屏幕创建新的JFrame示例。CardLayout允许您将多个JPanel堆叠在一起,并使用卡片名称或索引在它们之间切换。

相关问题