Java GUI事件对象导入

Java GUI事件对象导入,java,user-interface,object,events,Java,User Interface,Object,Events,我希望java gui事件在激活时调用类进行处理。我遇到了一个问题,因为我需要使用在代码前面创建的对象“设置”,并将其用于程序的其余部分。基本上,当在textfield中键入并按enter键时,此事件将启动并调用一个类来处理用户的输入。我看过其他论坛的答案,他们的解决方案涉及到创建“新”对象,这不是我想要做的。Display.TaskInput需要“设置”对象才能工作。这是一个事件: public class event implements ActionListener { publ

我希望java gui事件在激活时调用类进行处理。我遇到了一个问题,因为我需要使用在代码前面创建的对象“设置”,并将其用于程序的其余部分。基本上,当在textfield中键入并按enter键时,此事件将启动并调用一个类来处理用户的输入。我看过其他论坛的答案,他们的解决方案涉及到创建“新”对象,这不是我想要做的。Display.TaskInput需要“设置”对象才能工作。这是一个事件:

public class event implements ActionListener {

    public void actionPerformed(ActionEvent e) {

        //The text below calls a task that needs to use the settings object
        //This object presets the task object for easier user input.
        //Yes, this is wrong, but you can see what I am trying to do.
        Display.TaskInput(settings);

        //The rest of this is just for testing. It works when the above line             
        //is removed.
        label.setText("This worked also");
        label2.setText("This worked also");
        panel1.add(label2);
        add(panel1);
        panel1.setVisible(true);     
    }
}  
这是创建设置对象的位置。它是由数据库预设的。当用户输入任务时,任务将准备好多个预设,以便用户不必手动输入它们。这是程序的开始:

    public static void main(String[] args) {

     //object is created and loaded with data
    Settings settings = new Settings();
    DatabaseConnectSettingsSelect.Connect(settings);

    //this is where the gui is initiated. 
    FrameStart.main(args);

    //Once the gui starts working, this class will become unnecessary 
    Display.StartScreen(settings);
    }
这是GUI类FrameStart中的主要功能:

    public static void main(String[] args) {

        FrameStart ex = new FrameStart();
        ex.setVisible(true);   
    }
如果我不需要使用预制对象,一切都会很好。大多数解决方案都可以解决这个问题,但我需要导入在另一个类中创建的对象。如果您需要更多的代码来查看,我很乐意提供它;这正是我遇到的问题所在


总而言之,我需要将已经创建的对象放入事件类或直接放入TaskInput类。还有比我现在做的更好的方法吗?这个程序有大约15个类,我目前的工作方式很好,只是我不知道如何将创建的对象放入ActionEvent代码中。再一次,我看了其他论坛的答案,他们的解决方案涉及创建“新”对象,这不是我想要做的。

您的命名约定很麻烦,使它看起来像您完全依赖于
静态
引用,如果是这样,那么就不要这样做。您可能希望具有通读功能,这将使人们更容易阅读您的代码,您也更容易阅读其他内容。其他
设置
需要通过某种“中央”控制器(例如singleton)进行访问,或者您需要在构建
事件
类时传递对该类的引用
Display.StartScreen(设置);
数据库连接设置选择连接(设置)
似乎表明您知道如何将变量传递给其他类。不要使用
FrameStart.main
,而是为
FrameStart
创建一个构造函数,该构造函数引用
Settings
,并使用我放置的公共ObjectSettings设置;在开始处,将它放在构造函数FrameStart中(ObjectSettings设置)。我还更改了大多数名称以便于阅读。因此,如果我错了,请基本上纠正我,因为对象是公开的,类中的任何方法或子类都可以使用它,因此事件类可以使用它。对吗?