Obtener un JTextField desde otra clase.
Publicado por ProSyth (1 intervención) el 22/09/2011 19:00:56
Hola a todos llevo desde una semana buscando como solucionar un problema, tengo una clase main la cual llama una ventanaPrincipal, esta crea la Ventana, posee un JTextField y un JButtón, hasta ahí todo bien, luego tengo otra clase y necesito obtener el JTextField, pero o me da NullPointer o cuando meto dentro la instancia me va creando otra ventana, y quiero que todo me ocurra en la misma como se puede hacer? Dejo el código
Main principal:
Ventana Principal:
El error en prinipcio da aquí otcl.Captura(); al hacer la llamada pero si creo la instancia de OtraClase me salta cada vez que pulso el botón otra ventana y una de las cosas que quiero evitar.
OtraClase:
Como ven en esta última clase tengo System.out.println(vp.capturarTexto()); es para ver si captura o no el tengo, hace una llamada que está en la clase Ventanaprincipal
Pero no coge como he dicho el dato el puntero a punto null, como se puede hacer, muchas gracias por adelantado.
Main principal:
1
2
3
4
5
6
7
8
9
10
11
public class main {
/**
* @param args
*/
public static void main(String[] args) {
VentanaPrincipal vp = new VentanaPrincipal();
}
}
Ventana Principal:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
import java.awt.FlowLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JTextField;
public class VentanaPrincipal extends JFrame implements ActionListener{
public JTextField txt;
public OtraClase otcl;
private JButton btn;
public VentanaPrincipal(){ //Constructor
super("Mi Ventana");
this.setSize(300,200);
configVentana(); //Llamada funci�n
this.setLocationRelativeTo(null);
this.setVisible(true);
// Otra = new OtraClase();
}
public void configVentana(){ //A�ado los botones
this.setLayout(new FlowLayout());
txt = new JTextField(20);
btn = new JButton("Capturar");
btn.addActionListener(this);
this.add(txt);
this.add(btn);
}
public String capturarTexto(){
String miDato= txt.getText();
return miDato;
}
@Override
public void actionPerformed(ActionEvent e) {
if (e.getSource()==btn) {
otcl.Captura(); // Aquí salta el error
System.out.println("Hola");
}
}
}
El error en prinipcio da aquí otcl.Captura(); al hacer la llamada pero si creo la instancia de OtraClase me salta cada vez que pulso el botón otra ventana y una de las cosas que quiero evitar.
OtraClase:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
import javax.swing.JTextField;
public class OtraClase {
public VentanaPrincipal vp;
public JTextField txt;
public OtraClase() {}
public void Captura(){
System.out.println(vp.capturarTexto());
System.out.println("b");
}
}
Como ven en esta última clase tengo System.out.println(vp.capturarTexto()); es para ver si captura o no el tengo, hace una llamada que está en la clase Ventanaprincipal
1
2
3
4
5
}
public String capturarTexto(){
String miDato= txt.getText();
return miDato;
}
Pero no coge como he dicho el dato el puntero a punto null, como se puede hacer, muchas gracias por adelantado.
Valora esta pregunta


0