引用来自单独类的jPanel组件

时间:2014-07-06 17:53:58

标签: java swing jcomponent

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

1 个答案:

答案 0 :(得分:0)

我想你的introPanel扩展了JPanel。您可能使用Netbeans GUI工具制作了这个,因此jpanel1是一个私有实例。 首先将其添加到您的introPanel代码中:

public JButton getJButton1() {
    return jbutton1;
}

并从这个类中调用它:

JButton jbutton1 = introPanel.getJButton1();
相关问题