【发布时间】:2016-07-16 03:48:33
【问题描述】:
我在为我的课程作业制作的小程序方面需要帮助。
我正在使用卡片布局,我希望每张卡片的内容取自不同的类。然后在每张卡片中我想要按钮切换到其他卡片。我见过以类似方式工作的示例,但它们基于 JFrame 而不是小程序。
请不要给我发任何外部链接,我已经研究卡片布局好几天了。我是一名 Java 初学者,而且学习速度很慢。我希望有人向我展示一个基本示例并解释它是如何完成的。谢谢!
public class MainClass extends JApplet implements ActionListener {
boolean inAnApplet = true;
JButton btn1, btn2;
JPanel cards;
final static String PANEL1 = "";
final static String PANEL2 = "";
public MainClass() {
Container contentPane = getContentPane();
JPanel cbp = new JPanel();
cbp.add(new JLabel ("Hello world!"));
contentPane.add(cbp, BorderLayout.NORTH);
cards = new JPanel();
cards.setLayout(new CardLayout());
JPanel p1 = new JPanel();
p1.add(new JLabel("First panel!"));
btn1 = new JButton("Text panel");
btn1.addActionListener(this);
p1.add(btn1);
JPanel p2 = new JPanel();
p2.add(new JLabel("Second panel!"));
btn2 = new JButton("Button panel");
btn2.addActionListener(this);
p2.add(btn2);
cards.add(p1, PANEL1);
cards.add(p2, PANEL2);
contentPane.add(cards, BorderLayout.CENTER);
}
public void init(){}
public void actionPerformed(ActionEvent evt) {
CardLayout cl = (CardLayout)(cards.getLayout());
if(evt.getSource() == btn1)
{
cl.show(cards, PANEL1);
}
else if(evt.getSource() == btn2)
{
cl.show(cards, PANEL2);
}
}
}
【问题讨论】:
-
I would like someone to show me a basic example and explain how it is done- 阅读 How to Use CardLayout 上的 Swing 教程中的部分以获取工作演示代码。下载代码并使用它。然后,如果您对教程代码有什么不明白的地方,可以向我们提出具体问题。我们猜不出你不明白什么。例如,在教程中,卡片名称实际上有一个值而不是空字符串。
标签: java swing class applet cardlayout