2009-08-28 54 views
2

這可能是一個非常簡單的問題,但我無法弄清楚如何去做。Java:跨類傳遞變量

我有一個監聽器,從組合框和滑塊變量的GUI類。我需要它將這些變量傳遞給另一個類中的方法,該方法將在該類中的對象上運行。

我該怎麼做?

+0

什麼是「另一個類的方法,這將在該類的對象上運行「? – 2009-08-28 11:23:38

回答

4

有兩種常見的方法。簡單的一個常用於對話框,使選定的值(例如,組合框選擇)可用於其他類,第二個允許其他類在您的對象上註冊以接收更新通知。

第一種方法

  1. 店的GUI元素的(私有)成員變量的實際選擇(如:private String currentSelection)。這由您已經實現的監聽器完成。
  2. 實現諸如String getSelection()
  3. 當對話框完成(像有人按下OK按鈕)的方法,如果你提供了一個對話框,通過簡單地調用getSelection()方法

這可以用來獲取價值用戶輸入一些值。文件選擇器對話框是一個典型的例子。如果您需要到當前選擇 '實時' 的訪問,然後使用:

第二條本辦法

  1. 實現Observer模式(Listener類,最終事件類)

該模式有點太複雜,無法一步一步詳細解釋,但是如果您有興趣並且真的需要實時訪問更改,那麼還有很多文檔和示例。

1

一個簡單的數據類(理想情況下由一個接口前置,以最小化耦合)應該做到這一點。或者,如果數據成員名稱等在運行時發生變化,則可能適用java.util.Map

1

可以使用Java的Observer並在狀態發生變化時傳遞任何對象作爲參數。

0

使用參數。

otherObject.doStuff(comboBoxValue, slider1Value, slider2Value); 

你打電話必須聲明接受的參數的數量,你想傳遞的方法:

class OtherObject { 
    ... 
    void doStuff(int value1, int value2, int value3); 
}