已关闭,此问题需要更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();
}
}```
1条答案
按热度按时间kgsdhlau1#
您可以考虑使用CardLayout在不同的JPanel之间切换,而不是为每个屏幕创建新的JFrame示例。CardLayout允许您将多个JPanel堆叠在一起,并使用卡片名称或索引在它们之间切换。