使用卡布局更改面板 [英] Changing Panels using the Card layout
本文介绍了使用卡布局更改面板的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我很抱歉,如果这已经发布但我看起来很难找到其他代码,我无法理解。我是java编程的新手,并希望有人指出我如何通过按下按钮更改为所需的面板。任何帮助将受到高度赞赏。我只想完全理解这个概念是如何工作的。
Hi Im sorry if this has already been posted but I looked hard and found other codes that I could not understand very well. I am new to java programming and would like someone to point me in the right direction on how I could change to desired panels by pressing a button. any help would be highly appreciated. I am just trying to fully understand how this concept works.
import java.awt.*;
import java.awt.event.*;
import javax.swing.*; // Packages used in this program imported
public class onlineGame extends JFrame implements ActionListener
{
JPanel cards;
JButton button1, button2, button3;
public onlineGame() //This is the CONSTRUCTOR method
{
//The entry point into your program
setLayout(new FlowLayout()); //Use this for now.
setSize(810, 510); //Set the size of the JFrame
setTitle("Generic Card Game"); //Put Title on top of JFrame
setBackground(Color.yellow);
setResizable(false);
button1 = new JButton("THIS IS BUTTON 1");
button2 = new JButton("THIS IS BUTTON 2");
button3 = new JButton("THIS IS BUTTON 3");
button1.addActionListener(this);
button2.addActionListener(this);
button3.addActionListener(this);
//Create the cards
JPanel card1 = new JPanel();
card1.add(button1);
JPanel card2 = new JPanel();
card2.add(button2);
JPanel card3 = new JPanel();
card3.add(button3);
//Create the panel that contains the "cards".
cards = new JPanel(new CardLayout());
cards.add(card1);
cards.add(card2);
cards.add(card3);
getContentPane().add(cards);
setVisible(true); //Make JFrame visible
}
public void actionPerformed(ActionEvent e)
{
if (e.getSource() == button1){
//What do i put here to change to Panel card2 or card3 and so on.
}
}
public static void main(String args[])
{
new onlineGame(); // This calls the constructor and runs it
}
}
推荐答案
要切换到任意面板,请确保在添加卡组件时指定约束:
To switch to an arbitrary panel make sure to specify the constraints when adding the card components:
cards.add(card1, "Card 1");
cards.add(card2, "Card 2");
cards.add(card3, "Card 3");
然后翻到另一个组件:
CardLayout cardLayout = (CardLayout) cards.getLayout();
cardLayout.show(cards, "Card 2");
要导航到下一个组件,您可以使用:
To navigate to the next component, you can use:
cardLayout.next(cards);
阅读: CardLayout
这篇关于使用卡布局更改面板的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文