Java 从单独的类中引用jPanel组件

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

熟悉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);
        }
    });

我想你的介绍会延伸到JPanel。您可能是通过Netbeans GUI工具实现的,因此jpanel1是一个私有实例。 首先将其添加到您的简介面板代码中:

public JButton getJButton1() {
    return jbutton1;
}
从这个类中这样称呼它:

JButton jbutton1 = introPanel.getJButton1();