【发布时间】:2014-07-07 02:32:24
【问题描述】:
掌握 Java 编程并制作了一个简单的游戏。
我想为它制作一个包含两个不同“屏幕”的 GUI 我发现交换屏幕的最佳方法是使用 CardLayout。
所以,我有一个包含 IntroPanel 或 GamePanel 的容器面板。
通过做
contPanel.setLayout(cl);
contPanel.add(introPanel, "1");
contPanel.add(gamePanel, "2");
cl.show(contPanel, "1");
我可以将显示值从 1 更改为 2,它会更改正在显示的面板。
效果很好,我的问题是: 如何引用 introPanel 上的 jButton1? 我想在一个 jButton 上添加一个事件处理程序,但是在这个类中(所以我可以交换面板)
谢谢,
迈克
代码:
public static void main(String[] args) {
boolean playAgain = true;
SwingUtilities.invokeLater(new Runnable() {
public void run() {
JFrame GUI = new JFrame();
GUI.setVisible(true);
GUI.setSize(500, 500);
GUI.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
CardLayout cl = new CardLayout();
// Different Panels //
JPanel contPanel = new JPanel();
JPanel introPanel = new IntroPanel();
JPanel gamePanel = new GamePanel();
introPanel.jLabel1.getText();
// Card layout //
contPanel.setLayout(cl);
contPanel.add(introPanel, "1");
contPanel.add(gamePanel, "2");
cl.show(contPanel, "1");
GUI.add(contPanel);
}
});
【问题讨论】:
标签: java swing jcomponent