我是Java的新手,我使用IntelliJ的GUI Form向导创建一个使用main()
方法创建表单的表单。
我可以创建表单,并为提交按钮添加了一个监听器,但我不确定如何将表单值返回到应用程序的其余部分。
因为表单使用main,我只能传入字符串,并且它不会返回任何内容,所以我无法获得对框架的引用,因此我无法创建一个方法来传递对象的引用填充。
答案 0 :(得分:0)
添加了一个项目来展示这一点。 [Link here]
为了将数据恢复到第一帧,我们需要使用相同的内存引用。 简化解释:
在项目中,Bucket是DataObject的实例,它被传递给SecondForm,点击它的按钮后我们将值添加到该存储桶。
最后,一个WindowFocusListener在我们回到第一帧时更新字段。
代码不言自明。
通过功能编程,可以进一步改进代码。 Checkout this branch。
答案 1 :(得分:0)
因为表单使用main,我只能传入字符串,并且它不会返回任何内容,所以我无法获得对框架的引用,因此我无法创建一个方法来传递对象的引用填充
你应该回到OOP的基础知识。 GUI设计师确实隐藏了这一点,并且需要进行大量重构才能使它们在功能上保持清洁。
您可以创建班级的任何实例。并通过main()
例如。
public class Gui {
private JFrame frame;
private JTextField textField;
public Gui(String title) {
frame = new JFrame(title);
}
public void run() {
// display Frame, add panels, etc
}
public String getDataFromGui() {
return textField.getText(); // for example
}
// other methods
public static void main(String[] args) {
Gui g = new Gui("Hello World!");
g.run();
}
}