熟悉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);
}
});
答案 0 :(得分:0)
我想你的introPanel扩展了JPanel。您可能使用Netbeans GUI工具制作了这个,因此jpanel1是一个私有实例。 首先将其添加到您的introPanel代码中:
public JButton getJButton1() {
return jbutton1;
}
并从这个类中调用它:
JButton jbutton1 = introPanel.getJButton1();