Buenas, tengo un JFrame llamado TMantementoClientesForm, una clase desde donde manejo la ventana y los botones que se llama TMantementoClientesCtrl, y una clase Example que es donde pongo que se haga todo.
Class TManmtementoClientesCrtlimport java.awt.event.*;
import javax.swing.JOptionPane;
public class TMantementoClientesCtrl implements java.awt.event.ActionListener{
public static TMantementoClientesForm _ventana;
//se abre la ventana
public static void init_ventana(){
_ventana=new TMantementoClientesForm ();
}
//ventana visible
public static void show_ventana(){
_ventana.setVisible(true);
}
@Override
//Boton1
public void actionPerformed(ActionEvent e) {
_ventana.bt1.addActionListener(null);
String t1, t2, res1;
t1=_ventana.txt1.getText();
t2=_ventana.txt2.getText();
res1= t1 + " " + t2;
System.out.println(res1);
_ventana.lbl1.setText(String.valueOf(res1));
System.out.println("Pulsando botón 1 ");
}
//Boton 2
public void bt2ActionPerformed(ActionEvent e) {
//_ventana.bt2ActionPerformed(e);
// JButton bt2= new JButton ();
_ventana.bt2.addActionListener(null);
String t1, t2, res1;
t1=_ventana.txt1.getText();
t2=_ventana.txt2.getText();
res1= t1 + " " + t2;
JOptionPane.showMessageDialog(null, res1);
System.out.println("Pulsando botón 2 ");
}
}
Class Examplepublic class Example{
public static void main(String s[ ]) {
TMantementoClientesCtrl control_ventana = new TMantementoClientesCtrl();
control_ventana.init_ventana();
control_ventana.show_ventana();
control_ventana._ventana.bt1.addActionListener(control_ventana);
control_ventana._ventana.bt2.addActionListener(control_ventana);
}
}
En el codigo del JFrame no tengo nada mas que las variables para los textfields y los jbuttons.
El problema es que cuando pulso el botón 2 me hace exactamente lo mismo que pulsando el botón uno. Alguien sabe como hacer para que le jbutton 2 funciones sin poner el codigo en la clase del JFrame??
edit: Ahora si me dice el print qué botón estoy pulsando, lo malo es que pulso el boton1 y no sale nada, pulso el botón2 y sale 1 vez, pulso el borón1 y ya me sale, pero 3 veces, pulso el botón2 y sale 4 veces, pulso el 1 y sale 5 veces, así sucesivamente.
Este es el código que le tengo ahora a lo botenes@Override
public void actionPerformed(ActionEvent e) {
_ventana.bt1.addActionListener(new ActionListener(){
@Override
public void actionPerformed (ActionEvent e) {
System.out.println("Pulsando botón 1 ");
String t1, t2, res1;
t1=_ventana.txt1.getText();
t2=_ventana.txt2.getText();
res1= t1 + " " + t2;
//System.out.println(res1);
_ventana.lbl1.setText(String.valueOf(res1));
}
});
_ventana.bt2.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
System.out.println("Pulsando botón 2 ");
String t1, t2, res1;
t1=_ventana.txt1.getText();
t2=_ventana.txt2.getText();
res1= t1 + " " + t2;
// System.out.println(res1);
_ventana.lbl1.setText(String.valueOf(res1));
}
});
}
edit2: Era problema del la clase Example. Había que ponerlo asi:
Class Examplecontrol_ventana.init_ventana();
control_ventana.show_ventana();
control_ventana.actionPerformed(null);
//control_ventana._ventana.bt1.addActionListener(control_ventana);
//control_ventana._ventana.bt2.addActionListener(control_ventana);
Perdonar las molestias.