Hola a todos, soy nuevo en el mundo de la programación y estoy aprendiendo a programar un pequeño programa sencillo, que me permita a mi, agregar un texto a través de un JTextField y cuando le de click al boton de saludar, me aparezca en un JOptionPane, el nombre del usuario...
he programado todo y todo me funciona de maravilla, ejecuto el programa, me sale el cuadro, agrego el texto en el JTextField y cuando le doy click al boton, me aparece el JOptionPane pero vacio, y no entiendo porque... yo cree un metodo en la clase del JTextField para pasar esa información a una variable de tipo String, y cree un metodo que me devuelva dicha información de esa varaible, pero cuando la instancio en el JOptionPane, me sale en blanco, así haya escrito lo que sea en el JTextField, adjunto mi código para ver si me pueden hechar una mano...
public class ejercicio {
public static void main(String[] args) {
// TODO Auto-generated method stub
frame a = new frame();
}
}
class frame extends JFrame {
public frame(){
this.setTitle("titulo");
this.setSize(350, 180);
this.setResizable(false);
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
this.setLocationRelativeTo(null);
// ---- Agregar Paneles
primerPanel a = new primerPanel();
this.add(a,BorderLayout.NORTH);
segundoPanel b = new segundoPanel();
this.add(b,BorderLayout.CENTER);
tercerPanel c = new tercerPanel();
this.add(c,BorderLayout.SOUTH);
this.setVisible(true);
}
// primer Panel
class primerPanel extends JPanel {
public primerPanel() {
this.setLayout(new FlowLayout(FlowLayout.CENTER,15,15));
JLabel titulo = new JLabel("Ingrese un nombre para saludar");
this.add(titulo);
}
}
// segundo Panel
class segundoPanel extends JPanel {
private JTextField contenido;
private String informacion;
public segundoPanel() {
this.setLayout(new FlowLayout(FlowLayout.CENTER,15,15));
contenido = new JTextField(20);
this.add(contenido);
}
public String estableceNombre(){
return informacion = contenido.getText();
}
}
// tercer Panel
class tercerPanel extends JPanel implements ActionListener {
segundoPanel emisor = new segundoPanel();
public tercerPanel() {
this.setLayout(new FlowLayout(FlowLayout.CENTER,15,15));
JButton btn = new JButton("¡Saludar!");
btn.addActionListener(this);
this.add(btn);
}
@Override
public void actionPerformed(ActionEvent e) {
// TODO Auto-generated method stub
JOptionPane.showMessageDialog(null, "¡Hola "+emisor+"!");
}
}
}
he programado todo y todo me funciona de maravilla, ejecuto el programa, me sale el cuadro, agrego el texto en el JTextField y cuando le doy click al boton, me aparece el JOptionPane pero vacio, y no entiendo porque... yo cree un metodo en la clase del JTextField para pasar esa información a una variable de tipo String, y cree un metodo que me devuelva dicha información de esa varaible, pero cuando la instancio en el JOptionPane, me sale en blanco, así haya escrito lo que sea en el JTextField, adjunto mi código para ver si me pueden hechar una mano...
public class ejercicio {
public static void main(String[] args) {
// TODO Auto-generated method stub
frame a = new frame();
}
}
class frame extends JFrame {
public frame(){
this.setTitle("titulo");
this.setSize(350, 180);
this.setResizable(false);
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
this.setLocationRelativeTo(null);
// ---- Agregar Paneles
primerPanel a = new primerPanel();
this.add(a,BorderLayout.NORTH);
segundoPanel b = new segundoPanel();
this.add(b,BorderLayout.CENTER);
tercerPanel c = new tercerPanel();
this.add(c,BorderLayout.SOUTH);
this.setVisible(true);
}
// primer Panel
class primerPanel extends JPanel {
public primerPanel() {
this.setLayout(new FlowLayout(FlowLayout.CENTER,15,15));
JLabel titulo = new JLabel("Ingrese un nombre para saludar");
this.add(titulo);
}
}
// segundo Panel
class segundoPanel extends JPanel {
private JTextField contenido;
private String informacion;
public segundoPanel() {
this.setLayout(new FlowLayout(FlowLayout.CENTER,15,15));
contenido = new JTextField(20);
this.add(contenido);
}
public String estableceNombre(){
return informacion = contenido.getText();
}
}
// tercer Panel
class tercerPanel extends JPanel implements ActionListener {
segundoPanel emisor = new segundoPanel();
public tercerPanel() {
this.setLayout(new FlowLayout(FlowLayout.CENTER,15,15));
JButton btn = new JButton("¡Saludar!");
btn.addActionListener(this);
this.add(btn);
}
@Override
public void actionPerformed(ActionEvent e) {
// TODO Auto-generated method stub
JOptionPane.showMessageDialog(null, "¡Hola "+emisor+"!");
}
}
}