2017-07-28 56 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(); 
    } 

} 
相關問題