Salve ragazzi, ho realizzato una semplice gui. Alla pressione del bottone aumenta viene visualizzato un contatore nella JTextField aumentato di 1, mentre alla pressione del bottone diminuisci il contatore viene decrementato di 1.
Quello che succede è che tutte le volte che premo uno dei due bottoni il contatore parte da 0.
Mi spiego con un esempio. Se premo il bottone aumenta per supponiamo dieci volte e poi premo il bottone diminuisci esso visualizza -1 mentre io vorrei che visualizzasse 9.
Ho realizzato la classe listener separatamente.
Come posso risolvere?
Qui le classi
public class AscoltaBottone implements ActionListener {
private JTextField tf;
private int conta;
public AscoltaBottone(JTextField tf){
this.tf=tf;
this.conta=0;
}
@Override
public void actionPerformed(ActionEvent e) {
if(e.getActionCommand().equals("aumenta"))
this.conta++;
if(e.getActionCommand().equals("diminuisci"))
this.conta--;
tf.setText(""+conta);
}
}
public class FinestraBottoneExt {
public static void main(String[] args) {
// TODO code application logic here
JFrame f=new JFrame("Gui");
JPanel p=new JPanel();
JButton b1=new JButton("aumenta");
JButton b2=new JButton("diminuisci");
JTextField tf=new JTextField(10);
p.add(b1);
p.add(tf);
p.add(b2);
b1.addActionListener(new AscoltaBottone(tf));
b2.addActionListener(new AscoltaBottone(tf));
f.setContentPane(p);
f.setSize(500,100);
f.setVisible(true);
f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
}