2015-10-14 254 views
1

哪種更好,爲什麼? 在我沒有受過教育的意見中,最好將它們放在單獨的文件中,因爲如果您有10個按鈕,5個組合框和一個或兩個在一個文件中具有所有這些類的列表將變得雜亂無章。我是否正確地認爲?爲什麼你會選擇一個呢?把事件監聽器放在哪裏?

SimpleGUI.java:

public class simpleGUI extends JFrame { 

public JButton button; 
public JLabel label; 
public simpleGUI() { 
Container contentPane = getContentPane(); 
JPanel panel = new JPanel(); 
label = new JLabel("123abc"); 
button = new JButton("click me"); 

    simpleEventListener c = new simpleEventListener(); 
    c.setParams(label); 
    button.addActionListener(c); 

    panel.add(button); 
    panel.add(label); 

    contentPane.add(panel); 

    setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 
    setSize(300,300); 
    setTitle("simpleGUI"); 
    setVisible(true); 
} 
public static void main(String[]args) { 
    JFrame frame = new simpleGUI(); 
} 
} 

simpleEventListener.java:

public class simpleEventListener implements ActionListener { 
     private JLabel label; 
     public void actionPerformed(ActionEvent e) { 
      label.setText("Hello World!"); 
     } 
     public void setParams(JLabel label) { 
      this.label = label; 
     } 
    } 

或:

public class simpleGUI extends JFrame { 
    public JButton button; 
    public JLabel label; 
    public simpleGUI() { 
     Container contentPane = getContentPane(); 
     JPanel panel = new JPanel(); 
     label = new JLabel("123abc"); 
     button = new JButton("click me"); 

     simpleEventListener c = new simpleEventListener(); 
     button.addActionListener(c); 

     panel.add(button); 
     panel.add(label); 

     contentPane.add(panel); 

     setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 
     setSize(300,300); 
     setTitle("simpleGUI"); 
     setVisible(true); 
    } 
    public class simpleEventListener implements ActionListener { 
     public void actionPerformed(ActionEvent e) { 
      label.setText("Hello World!"); 
     } 
    } 
    public static void main(String[]args) { 
     JFrame frame = new simpleGUI(); 
    } 
} 

回答

2

最好是把它們放在單獨的文件中,因爲如果你有10個按鈕,5個組合框和一個或兩個在一個文件中具有所有這些類的列表將變得混亂。我是否正確地認爲?

不,沒有什麼雜亂的。 包含該類的文件的結構將爲 ,其中包含一個主類和其他幾個類, 不能從除該類之外的任何其他地方訪問。

爲什麼你會選擇一個嗎?

封裝。 如果聽衆不會被用於您的項目中的任何其他課程,則 則無需公開它們。事實上,暴露他們(使他們可見)是可以混亂的。 使用主類的其他代碼也會看到監聽器類 ,即使它們不能用於任何事情。

即使您將類保留爲內部類型,例如與您一樣simpleEventListener, ,您應該將其設置爲private而不是public。 項目中的其他類不需要知道它。 封裝與信息隱藏結合在一起。 它保持你的接口清潔。