2012-02-28 111 views
0

我是Java的新手,這就是爲什麼我的問題聽起來很奇怪和愚蠢。但無論如何,我有幾種形式(擴展JFrame的類)。我想要的是有一個可讀取和寫入所有形式的變量。當我創建一個接口並在我的窗體中實現它時,接口的所有變量都可以在窗體中訪問,但僅用於讀取,我無法爲它們分配新值。java中的會話變量

問題:Java中可以這麼做嗎?如果是,那麼如何?

+0

沒有更多的信息我的玻璃球說在界面 – vickirk 2012-02-28 13:50:20

+0

@vickirk添加的setXXX方法。你能否以更詳細的信息(我非常感謝你是否可以提供簡短的代碼)作爲新的答案發表你的意見。 – Bakhtiyor 2012-02-28 13:56:50

回答

0

接口沒有變量,它們只有final成員 - 即常數。你可以用一個類替換接口,然後你就可以訪問感興趣的類成員。

+0

但我的課程擴展了JFrame,並且無法擴展你講述的第二課程,如果我已經弄明白你的意思了。 – Bakhtiyor 2012-02-28 13:52:34

+0

使用一個委託,只需調用該類的委託方法即可。 – vickirk 2012-02-28 13:55:49

0

這聽起來像你想要一個單身人士或一個具有一堆靜態屬性的類。

要記住的主要事情是,如果您有多個線程訪問「全局」屬性是需要同步訪問。

0

在Java接口中只有final成員。這意味着這些成員是最終的。很可能你不能擴展一個類,因爲你的Form類擴展了JFrame。這裏使用的一個選項是有一箇中間繼承類。以下面爲例。

class intermediateClass extends JFrame{ 
//some code if any 

String name; 
//Getter/Setter 
} 

class yourForm extends intermediateClass{ 
public yourForm(){ 
    setName("Ddd"); 
    System.out.println(getName()); 
} 
} 

但我不會親自推薦它。我寧願建議你使用不同的類 - 特別是你的類與Main方法來保存這些變量。比如我使用了一個名爲亞軍執行Java類應用 -

class Runner{ 
String name; 
public static void main(String[] args) { 
    setName("Dchan"); 
    System.out.println(getName()); 
} 
//getter/setter 
} 

希望這有助於