2017-07-28 46 views
0

的我是比较新的Java和我使用的IntelliJ的GUI窗体向导来创建一个使用main()方法来创建表单的形式。
我可以得到要创建的表单,并添加了一个侦听器到提交按钮,但我不确定如何将表单值返回到应用程序的其余部分。如何获得的数据进行GUI表格(的IntelliJ)

因为形式采用主,我只能传递字符串,所以我不能在框架上的参考,所以我不能创建一个方法中的一个引用传递它不返回任何东西对象来填充。

+1

你必须解释你想要数据去的地方。表单中的对象有多种方法,例如getSelectedValue()或getText()来获取数据,但我不认为这就是你要做的。 – Ordous

回答

0

添加了一个项目来展示这一点。 [Link here]

为了让数据恢复,我们需要使用相同的内存引用的第一帧。 简化说明:

  1. 想象一下,你有一个桶。
  2. 第一帧告诉第二帧放置数据的存储桶。
  3. 第二帧不知道数据,但知道在哪个桶中放置它。
  4. 用户添加数据并点击确定按钮。
  5. 第二帧获取数据并将它们放入存储桶中。
  6. 回到第一帧,我们从桶中获取数据。

在该项目中,Bucket是DataObject的实例,它被传递给SecondForm,并在点击它的按钮后,我们将该值添加到该桶中。

最后,当我们回到第一帧的WindowFocusListener更新字段。

代码是不言自明的。

随着功能的编程,所述代码可以被进一步改善。 Checkout this branch

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(); 
    } 

} 
相关问题