Java GUI事件对象导入
我希望java gui事件在激活时调用类进行处理。我遇到了一个问题,因为我需要使用在代码前面创建的对象“设置”,并将其用于程序的其余部分。基本上,当在textfield中键入并按enter键时,此事件将启动并调用一个类来处理用户的输入。我看过其他论坛的答案,他们的解决方案涉及到创建“新”对象,这不是我想要做的。Display.TaskInput需要“设置”对象才能工作。这是一个事件:Java GUI事件对象导入,java,user-interface,object,events,Java,User Interface,Object,Events,我希望java gui事件在激活时调用类进行处理。我遇到了一个问题,因为我需要使用在代码前面创建的对象“设置”,并将其用于程序的其余部分。基本上,当在textfield中键入并按enter键时,此事件将启动并调用一个类来处理用户的输入。我看过其他论坛的答案,他们的解决方案涉及到创建“新”对象,这不是我想要做的。Display.TaskInput需要“设置”对象才能工作。这是一个事件: public class event implements ActionListener { publ
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设置)。我还更改了大多数名称以便于阅读。因此,如果我错了,请基本上纠正我,因为对象是公开的,类中的任何方法或子类都可以使用它,因此事件类可以使用它。对吗?