gpt4 book ai didi

java - 如何通过按空格键切换 JPanel

转载 作者:行者123 更新时间:2023-11-30 07:21:44 26 4
gpt4 key购买 nike

我从这个开始,这是运行 GUI 时显示的第一帧。

private void populateFrame(JFrame frame){
mainPanel = new JPanel() {
@Override
public void paint(Graphics g) {
super.paint(g);
g.setColor(Color.white);
g.setFont(new Font(Font.SERIF, Font.BOLD,50));
g.drawString("Press the spacebar to play", 690, 1000);
}
};
frame.getContentPane().add(mainPanel);
mainPanel.setBackground(Color.white);
mainPanel.setLayout(new BorderLayout());
frame.setTitle("Marvel Showdown!");
frame.setSize(1920,1080);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
picture.setIcon(new ImageIcon("C:\\Users\\Quentin Clayton\\Pictures\\Marvel Showdown\\Marvel Showdown Menu.png"));
mainPanel.add(picture, BorderLayout.CENTER);
mainPanel.repaint();
mainPanel.addKeyListener(this);
mainPanel.setFocusable(true);
mainPanel.requestFocus();
frame.setVisible(true);

然后是我想要切换到的面板,其中有 10 个按钮供人们选择某人。

private void mainPanel(/*JPanel mainPanel*/){
frame.getContentPane().removeAll();
frame.getContentPane().add(Panel2);
Panel2.setBackground(Color.WHITE);
Panel2.setLayout(new BorderLayout());
frame.setTitle("Picture Buttons");
frame.setSize(1920, 1080);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

Icon pic1 = new ImageIcon("C:\\Users\\Quentin Clayton\\Pictures\\Marvel Showdown\\Deadpool.png");
Icon pic2 = new ImageIcon("C:\\Users\\Quentin Clayton\\Pictures\\Marvel Showdown\\Captain America.png");
Icon pic3 = new ImageIcon("C:\\Users\\Quentin Clayton\\Pictures\\Marvel Showdown\\Domino.png");
Icon pic4 = new ImageIcon("C:\\Users\\Quentin Clayton\\Pictures\\Marvel Showdown\\IronMan.png");
Icon pic5 = new ImageIcon("C:\\Users\\Quentin Clayton\\Pictures\\Marvel Showdown\\magneto.png");
Icon pic6 = new ImageIcon("C:\\Users\\Quentin Clayton\\Pictures\\Marvel Showdown\\Spiderman.png");
Icon pic7 = new ImageIcon("C:\\Users\\Quentin Clayton\\Pictures\\Marvel Showdown\\Venom.png");
Icon pic8 = new ImageIcon("C:\\Users\\Quentin Clayton\\Pictures\\Marvel Showdown\\Wolverine.png");
Icon pic9 = new ImageIcon("C:\\Users\\Quentin Clayton\\Pictures\\Marvel Showdown\\Gambit.png");
Icon pic10 = new ImageIcon("C:\\Users\\Quentin Clayton\\Pictures\\Marvel Showdown\\Josh.png");

JButton button1 = new JButton(pic1);
JButton button2 = new JButton(pic2);
JButton button3 = new JButton(pic3);
JButton button4 = new JButton(pic4);
JButton button5 = new JButton(pic5);
JButton button6 = new JButton(pic6);
JButton button7 = new JButton(pic7);
JButton button8 = new JButton(pic8);
JButton button9 = new JButton(pic9);
JButton button10 = new JButton(pic10);

mainPanel.add(button1);
mainPanel.add(button2);
mainPanel.add(button3);
mainPanel.add(button4);
mainPanel.add(button5);
mainPanel.add(button6);
mainPanel.add(button7);
mainPanel.add(button8);
mainPanel.add(button9);
mainPanel.add(button10);



mainPanel.setLayout(new GridLayout(2,4));
//frame.setSize(1920, 100);
frame.setVisible(true);
}

最后,这是我用空格键作为按键的地方。

@Override
public void keyPressed(KeyEvent e) {
System.out.println("press space bar");
//if (showTitleScreen) {
if (e.getKeyCode() == KeyEvent.VK_SPACE) {

有关通过按空格键将框架切换到面板的任何提示。

最佳答案

Any tips on having the frame be switch to the panel with all the buttons

您应该使用 CardLayout 来容纳两个面板。然后,当按下空格键时,您可以切换面板。阅读 Swing 教程中关于 How to Use CardLayout 的部分。您应该能够使用 CardLayout 的“next()”方法切换到下一个面板。

And finally this which is where I have the spacebar as the key to hit.

不要使用 KeyListener。 Swing 被设计为与按键绑定(bind)一起使用。

您需要创建一个操作。阅读 Swing 教程中关于 How to Use Actions 的部分了解更多信息和示例。

然后,您将使用按键绑定(bind)将 Action 绑定(bind)到空格键 KeyStroke。查看Key Bindings有关如何将 KeyStroke 绑定(bind)到 Action 的示例。

在这种情况下,您可能希望将 KeyStroke 绑定(bind)到框架的根 Pane 。

关于java - 如何通过按空格键切换 JPanel,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37448235/

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