Foros del Web » Programación para mayores de 30 ;) » Java »

No me responde el manejador de eventos en una clase aparte

Estas en el tema de No me responde el manejador de eventos en una clase aparte en el foro de Java en Foros del Web. Aca le muestro la fuente que hice, que ocurre tengo un JTextField que se llama jTRif y copie lo que escriba en el otro JTextField ...
  #1 (permalink)  
Antiguo 26/06/2010, 22:26
 
Fecha de Ingreso: enero-2006
Mensajes: 6
Antigüedad: 18 años, 3 meses
Puntos: 0
No me responde el manejador de eventos en una clase aparte

Aca le muestro la fuente que hice, que ocurre tengo un JTextField que se llama jTRif y copie lo que escriba en el otro JTextField por ejemplo uno que llame jTNombre que es mi otro JTextField, si hago actionListerner(this) el perfecto lo hace pero si llamo mi manejador alojado en una clase no me funciona no responde ni siquiera un JOptionPane responde quisiera saber que es gracias.
Ojo todo acá es un programa de prueba.

package javaapplication7;

import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JOptionPane;
//:

public class ClaseEventoA implements ActionListener
{

ClaseVentanaA claseVA = new ClaseVentanaA();

public void actionPerformed(ActionEvent e)
{
if(e.getSource()==claseVA.jBAceptar)
{
String rif=claseVA.jTRif.getText();
claseVA.jTApellido.setText(rif);
JOptionPane.showMessageDialog(null,"Hola");
}
}//actionPerformed

}//ClaseEventoA


--------------------------------------------------

package javaapplication7;

import java.awt.event.ActionListener;
import java.awt.FlowLayout;
import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.Dimension;
import java.awt.GridLayout;
//:
import java.awt.event.ActionEvent;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JTextField;
import javax.swing.JLabel;
import javax.swing.JButton;
import javax.swing.JCheckBox;
import javax.swing.ImageIcon;
import javax.swing.JComboBox;
import javax.swing.JRadioButton;
import javax.swing.ButtonGroup;
import javax.swing.JOptionPane;
import javax.swing.JTable;
import javax.swing.JScrollPane;
import javax.swing.table.DefaultTableModel;


public class ClaseVentanaA implements ActionListener
{
private JFrame jFVentana;
private JPanel jPanelA,jPanelB;
public JTextField jTRif,jTNombre,jTApellido;
private JLabel jLRif,jLNombre,jLApellido,jLPago;
public JButton jBAceptar, jBCancelar;
private JCheckBox jKMayor,jKDetal;
private ImageIcon iconMayor,iconDetal;
private JComboBox jCPago;
private JRadioButton jRNatural,jRJuridico;
private ButtonGroup bGA,bGB;
private JTable jTA;
private JScrollPane jSA;
private DefaultTableModel dTMA;

public ClaseVentanaA()
{
String[] tipoPago={"Cheque","Debito","Efectivo"};
String dataA[][]={{"J-17173886","Juan","Montilla","Efectivo"},
{"J-1340897","Vanessa","Nadal","Cheque"},
{"J-14565662","Raul","Araujo","Debito"}};
String dataB[]={"Rif","Nombre","Apellido","Tipo de Pago"};

jFVentana = new JFrame("Cliente");
jPanelA = new JPanel();
jPanelB = new JPanel();
jTRif = new JTextField(10);
jTNombre = new JTextField(20);
jTApellido = new JTextField(20);
jLRif = new JLabel("RIF: ");
jLNombre = new JLabel("NOMBRE: ");
jLApellido = new JLabel("APELLIDO: ");
jLPago = new JLabel("TIPO DE PAGO: ");
jBAceptar = new JButton("Aceptar");
jBCancelar = new JButton("Cancelar");
jKMayor = new JCheckBox("Compra Mayor");
jKDetal = new JCheckBox("Compra Detal");
jCPago = new JComboBox(tipoPago);
jRNatural = new JRadioButton("Natural");
jRJuridico = new JRadioButton("Juridico");
bGA = new ButtonGroup();
bGB = new ButtonGroup();
dTMA = new DefaultTableModel(dataA,dataB);
jTA = new JTable(dTMA);
jSA = new JScrollPane(jTA);
iconMayor = new ImageIcon("iconMayor.JPG");
iconDetal = new ImageIcon("iconDetal.GIF");
}//constructor

public void todo()
{

//Image imageM = iconMayor.getImage();
//jCMayor.setIcon(iconMayor);
//jCDetal.setIcon(new ImageIcon("iconDetal.GIF"));
jCPago.setBackground(Color.BLACK);
jCPago.setForeground(Color.GREEN);
jTA.setForeground(Color.RED);
jTA.setBackground(Color.BLACK);

bGA.add(jRNatural);
bGA.add(jRJuridico);
bGB.add(jKDetal);
bGB.add(jKMayor);
jTA.setPreferredScrollableViewportSize(new Dimension(500,100));
jBAceptar.addActionListener(new ClaseEventoA()); // aca llamo al manejador
jBCancelar.addActionListener(this);

jPanelA.setLayout(new GridLayout(7,2));
jPanelA.add(jLRif);
jPanelA.add(jTRif);
jPanelA.add(jLNombre);
jPanelA.add(jTNombre);
jPanelA.add(jLApellido);
jPanelA.add(jTApellido);
jPanelA.add(jKMayor);
jPanelA.add(jKDetal);
jPanelA.add(jLPago);
jPanelA.add(jCPago);
jPanelA.add(jRNatural);
jPanelA.add(jRJuridico);
jPanelA.add(jTA,BorderLayout.CENTER);

jPanelB.setLayout(new FlowLayout());
jPanelB.add(jBAceptar);
jPanelB.add(jBCancelar);

jFVentana.setLayout(new BorderLayout());
jFVentana.add(jPanelA,BorderLayout.NORTH);
jFVentana.add(jPanelB,BorderLayout.SOUTH);
jFVentana.pack();
jFVentana.setVisible(true);
jFVentana.setSize(700,500);
}// todo

public void actionPerformed(ActionEvent e)
{
/* if(e.getSource()==jBAceptar)
{
JOptionPane.showMessageDialog(null,"Aceptar");
}*/

if(e.getSource()==jBCancelar)
{
JOptionPane.showMessageDialog(null,"Cancelar");
}

}

}//ClaseVentanaA

seria todo un placer saber que ocurre gracias.
  #2 (permalink)  
Antiguo 26/06/2010, 22:45
Avatar de FiruzzZ  
Fecha de Ingreso: diciembre-2007
Ubicación: en casa
Mensajes: 470
Antigüedad: 16 años, 4 meses
Puntos: 41
Respuesta: No me responde el manejador de eventos en una clase aparte

public class ClaseEventoA implements ActionListener {
Porque estás creando OTRA INSTANCIA DE VentanaA ( Si bien estás atrapando el evento, los cambios los estás haciendo sobre otra)
ClaseVentanaA claseVA = new ClaseVentanaA();

public void actionPerformed(ActionEvent e) {
if(e.getSource()==claseVA.jBAceptar) {
String rif=claseVA.jTRif.getText();
claseVA.jTApellido.setText(rif);
JOptionPane.showMessageDialog(null,"Hola");
}
}

}

Etiquetas: clase, eventos, responde, aportes
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 06:41.