2012-04-10 36 views
2

我的問題特定於Eclipse和Swing WindowBuilder插件。Java/Eclipse(WindowBuilder插件) - 如何有效使用Swing Actionlisteners?

爲了製作簡單的Swing應用程序,我通常會創建一個類並擴展JFrame。我使我的Swing組件私有類變量。這讓我在的actionPerformed()添加的ActionListeners和訪問Swing組件,如:

public class MyClass() extends JFrame implements ActionListener { 
    private JButton btnClickMe = new JButton("Click me"); 

    public MyClass() { 
     super("title"); 
     this.setLayout(null); 
     btnClickMe.setBounds(1,1,100,100); 
     this.add(btnClickMe); 
     btnClickMe.addActionListener(this); 
     this.setVisible(true); 
    } 

    public void actionPerformed(ActionEvent event) { 
     Object source = event.getSource(); 
     if(source == btnClickMe) { // do something } 
    } 

    public static void main(String[] args) { 
     new MyClass(); 
    } 
} 

默認情況下的WindowBuilder插件創建Swing組件變量我怎樣纔算構造猜(公共MyClass的() ),而不是私有類變量。由於範圍的原因,我無法像我習慣的那樣使用ActionListeners,因爲Swing變量對actionPerformed()不可見。

任何人都可以建議如何解決這個問題嗎?

回答

4

什麼阻止你重構這些局部變量到字段?關於WindowBuilder最好的事情之一是能夠在一定程度上解析手寫代碼。

另外,在Window Builder中有一個配置選項來爲控件創建字段變量。看看日食,Preferences->WindowBuilder->Swing->Code generation;)

+0

謝謝這回答了我的問題。我是Eclipse的新手,從未使用過重構功能 - 看起來它完美無缺!另外,我甚至不知道在哪裏找到插件首選項。我會修改未來的喜好。再次感謝。 – Andrew 2012-04-10 03:48:11

+0

@Andrew不客氣。如果這有幫助,你可以提出答案並將其標記爲已接受;) – Bogdan 2012-04-10 04:12:48

相關問題