Du bör lägga all kod i en instans av din klass, och bara använda main för att skapa en instans av klassen. main ska inte ses som mer än en hjälpfunktion.
Dessutom kan du använda samma instans av din klass för att lyssna efter knapptryckningar. Genom att använda evt.getSource() och jämföra kan du använda samma funktion till flera knappar. (Notera button.addActionListener(this);)
Typ:
class MinTwitterApplikation implements ActionListener{
public static void main(String[]args){
new MinTwitterApplikation(); // Skapa en instans av din applikation
}
JTwitter twitter;
JButton button1,button2;
public MinTwitterApplikation(){ // Din konstruktor
twitter = new JTwitter();
button1 = new JButton();
button2 = new JButton();
button1.addActionListener(this);
button2.addActionListener(this);
}
public void actionPerformed(ActionEvent evt){ //
if (evt.getSource() == button1){
twitter.doSomething();
}
if (evt.getSource() == button2){
twitter.doSomethingElse();
}
}
}
Alternativ metod med inline-definitioner av dina ActionListeners. Notera att första klassen implements ActionListener medan den andra inte gör det. Detta pga att i det första exemplet används en instans av klassen själv som ActionListener-objekt. I det andra exemplet objekt "inline" i koden.
class MinTwitterApplikation{
public static void main(String[]args){
new MinTwitterApplikation(); // Skapa en instans av din applikation
}
JTwitter twitter;
JButton button1,button2;
public MinTwitterApplikation(){ // Din konstruktor
twitter = new JTwitter();
button1 = new JButton();
button2 = new JButton();
button1.addActionListener(new Actionlistener(){
public void actionPerformed(ActionEvent evt){
twitter.doSomething();
}
});
button2.addActionListener(new Actionlistener(){
public void actionPerformed(ActionEvent evt){
twitter.doSomethingElse();
}
});
}
}
