如何引用或访问JavaSwing中其他方法中的按钮等对象?

如何引用或访问JavaSwing中其他方法中的按钮等对象?,java,swing,user-interface,Java,Swing,User Interface,我不知道我的问题中是否使用了正确的术语,如果听起来有点混乱,请提前道歉。因此,基本上我正在尝试编写一个JavaSwing程序来创建GUI。在整个GUI中,有多个组件/对象或多或少是统一的,因此我创建了不同的方法来创建不同的对象和面板,并将它们组合在master面板中,该面板将被传递回框架 我设计了整个GUI的布局和外观,但它几乎还不能正常工作。我的问题是,我的操作侦听器需要引用或访问在中创建并添加到另一个方法/类中的面板并作为面板传回的按钮或对象。比如说, class makeCompo

我不知道我的问题中是否使用了正确的术语,如果听起来有点混乱,请提前道歉。因此,基本上我正在尝试编写一个JavaSwing程序来创建GUI。在整个GUI中,有多个组件/对象或多或少是统一的,因此我创建了不同的方法来创建不同的对象和面板,并将它们组合在
master
面板中,该面板将被传递回
框架

我设计了整个GUI的布局和外观,但它几乎还不能正常工作。我的问题是,我的操作侦听器需要引用或访问在中创建并添加到另一个方法/类中的面板并作为面板传回的按钮或对象。比如说,

    class makeComponents extends JPanel {
        public makeComponents() { 

        }

        public JToggleButton ToggleButton() {
          // Creates On/Off buttons as switches
            JToggleButton button = new JToggleButton("OFF", false);
            button.addActionListener(new ActionListener() {
                AbstractButton abstractButton = (AbstractButton)e.getSource();
                if (abstractButton.isSelected()) {
                    abstractButton.setText("ON");
                  // Want to add CardLayout card.show() to switch pictures
                }
                else {
                    abstractButton.setText("OFF");
                  // Want to add CardLayout card.show() to switch pictures
                }
            }
            return button;
         }
     }
我在一个单独的
左侧
JPanel上有一个像上面那样的开/关按钮,然后我在
右侧
JPanel上的CardLayout中有两个图像,这两个面板在
JPanel中连接在一起,并传递回框架。我已经创建了很多层,我不知道如何回溯和访问这些图片,这样我就可以在另一个面板中翻转这两个图像的卡片布局


我希望我说得够清楚,任何帮助都将不胜感激。提前谢谢你

您只需将所有包含私有类的类合并到一个类中,就可以访问主clas对象,如下所示:

public class Master {

    int x;
    int y;
    Inside1 inside;
    Inside2 in2;
    private class Inside1{
        public Inside1(){
            foo();
        }
        private void foo(){
            x=5; //Master.x <---
        }
    }

    private class Inside2{
        public Inside2(){
            inside = new Inside1(); //<- new object of inside1 form Master 
            bar();
        }

        private  void bar(){
            y=15; //Master.y
        }
    }

    public Master(){
        in2 = new Inside2();
    }


}
公共类主控{
int x;
int-y;
内1内;
内2个in2;
私有类内部1{
公众知情人1(){
foo();
}
私人文件{
x=5;//Master.x