2010-07-21 117 views
0

我有一點問題。Java接口實現問題

II級:

interface jj{ 
    public class ll implements gg{ 
    public static String j ="C:\\"; 
     //some code here 
} 
} 

類GGG:

interface gg{ 
public class ggg extends JFrame implements jj{ 
       //bunch of code + a textfield 
     textField = new JTextField(); 
     textField.setBounds(72, 120, 217, 20); 
     textField.setColumns(10); 
       //bunch of code 
} 
} 

AAA級

public class aaa implements jj, gg { 
    public aaa(){ 

//File chooser here + editing strin "j" from class "ll" 
     File f = chooser.getSelectedFile(); 



     if(f!=null) 
     { 
      jj.ll.j = f.getPath(); 
       //And printing "j" string to the text field from ggg class 
      gg.ggg.textField.setText(jj.ll.j); 
     } 
} 
} 

我的問題是,該文本字段不能打印。我嘗試了System.out.println jj.ll.j字符串來測試它是否有一些東西。是的它的工作方式如何預期。

+5

你確定你需要接口中的類嗎? – stacker 2010-07-21 17:00:41

+6

我的建議是不在接口中嵌入非接口類。 – Powerlord 2010-07-21 17:01:51

+0

我需要在另外3個類中使用j字符串。如果java創建了多繼承特性,那將會容易得多,但我們擁有我們擁有的。 – artouiros 2010-07-21 17:10:11

回答

5

我不明白在界面內製作類的邏輯。

如果您需要各種類中的j字符串,只需將其聲明爲某個類中的公共靜態字段即可。實現一個接口來獲得一個常量是非常老套的。如果您使用Java 1.5+,請執行靜態導入。

+0

我真的不知道如何做靜態導入。你能舉個例子嗎? – artouiros 2010-07-21 17:58:37

+0

UPD:謝謝我在oracle文檔中找到它 – artouiros 2010-07-21 18:16:00

1

我有點驚訝,編譯器讓你這樣做 - 但除非你只是好奇,否則不要這樣做。

只需找到另一種方式。

新增的複雜性永遠不值得。