My question is specific to Eclipse and the Swing WindowBuilder plugin.
To make simple Swing apps I normally create a class and extend a JFrame. I make my Swing components private class variables. This allows me to add an Actionlisteners and access the swing components in actionPerformed(), like this:
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();
}
}
By default the WindowBuilder plugin create Swing component variables I guess in what would be considered the constructor (public MyClass()), rather than private class variables. As a result due to scope I am not able to use ActionListeners the way I am used to since the Swing variables are not visible to actionPerformed().
Can anyone advise how this can be overcome?