Java 从单独的类中引用jPanel组件
熟悉Java编程并制作了一个简单的游戏 我想为它制作一个包含两个不同“屏幕”的GUI 我发现交换屏幕的最好方法是使用CardLayout 所以,我有一个容器面板,它包含IntroPanel或GamePanel 通过做Java 从单独的类中引用jPanel组件,java,swing,jcomponent,Java,Swing,Jcomponent,熟悉Java编程并制作了一个简单的游戏 我想为它制作一个包含两个不同“屏幕”的GUI 我发现交换屏幕的最好方法是使用CardLayout 所以,我有一个容器面板,它包含IntroPanel或GamePanel 通过做 contPanel.setLayout(cl); contPanel.add(introPanel, "1"); contPanel.add(gamePanel, "2"); cl.show(contPanel
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);
}
});
我想你的介绍会延伸到JPanel。您可能是通过Netbeans GUI工具实现的,因此jpanel1是一个私有实例。 首先将其添加到您的简介面板代码中:
public JButton getJButton1() {
return jbutton1;
}
从这个类中这样称呼它:
JButton jbutton1 = introPanel.getJButton1();