Java - Tengo problemas para obtener el texto de un JTextFiled. Tras varios métodos, no lo logro.

 
Vista:

Tengo problemas para obtener el texto de un JTextFiled. Tras varios métodos, no lo logro.

Publicado por Fernando (1 intervención) el 21/04/2020 01:26:05
Muy buenas noches. Mi consulta va relacionada a un problema con obtener el texto dentro de un JTextField.
La idea del programa es que el usuario ingrese un número para, posteriormente, hacer unos cálculos. Dichos cálculos deben comenzar cuando se de click al botón de al lado.
Sucede que al ingresar el JTextField.getText() en la acción del botón me da un error de NullpointException. Lo intenté poniendo la llamada a la acción del botón dentro de un DocumentListener, y ahí si me da el texto, sólo que al poner más de una cifra en el número, el calculo se ejecuta una cantidad de veces equivalente a la cantidad de cifras del número. Quise solucionar ese error al colocar un KeyListener y que la acción se active sólo cuando, luego de ingresar el numero, se presione ENTER. Pero esto no solucione nada, ya que, nuevamente, no obtiene ningún texto.
Muchas gracias, agradezco la ayuda.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de Franklin
Val: 456
Bronce
Ha mantenido su posición en Java (en relación al último mes)
Gráfica de Java

Tengo problemas para obtener el texto de un JTextFiled. Tras varios métodos, no lo logro.

Publicado por Franklin (179 intervenciones) el 21/04/2020 14:00:35
sería mejor si dejas el código que tienes en el boton que te da error
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Tengo problemas para obtener el texto de un JTextFiled. Tras varios métodos, no lo logro.

Publicado por Fernando (2 intervenciones) el 26/04/2020 00:56:18
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
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
private void creat_textbox(){
    textbox_01.setBounds(10,10,190,20);
 
    //Determines if the textbox is empty. If it is not, enable the button
    DocumentListener listener = new DocumentListener() {
        @Override
        public void insertUpdate(DocumentEvent e) {
            transformToBinari.setEnabled(true);
        }
 
        @Override
        public void removeUpdate(DocumentEvent e) {
 
        }
 
        @Override
        public void changedUpdate(DocumentEvent e) {
 
        }
    };
 
    textbox_01.getDocument().addDocumentListener(listener);
 
    panel.add(textbox_01);
}
 
private void creat_button(){
 
    transformToBinari.setBounds(210,10,180,20);
    transformToBinari.setText("Transformar a binario");
    transformToBinari.setEnabled(false);
 
    panel.add(transformToBinari);
}
 
public class ButtonAction {
 
    public void transformToBinariAction(JButton transformToBinari,String text){
        ActionListener action = new ActionListener() {
            @Override
            public void actionPerformed(ActionEvent e) {
                System.out.println(text);
                CalculatorToBinari calculator = new CalculatorToBinari();
                calculator.ToBinari(Integer.parseInt(text));
            }
        };
 
        transformToBinari.addActionListener(action);
    }
}
 
public class CalculatorToBinari {
    private LinkedList<Integer> numbers = new LinkedList<Integer>();
 
    public void ToBinari(int num){
        get_Figures(num);
        order_Numbers();
 
        for(int i=0;i<numbers.size();i++){
            System.out.println(numbers.get(i)+"");
        }
    }
 
    private void order_Numbers(){
        int[] assistant = new int[numbers.size()];
        int cont = numbers.size();
 
        for(int i = 0;i < assistant.length;i++){
            assistant[i] = numbers.get(cont-1);
            cont--;
        }
 
        numbers.clear();
 
        for(int i=0;i<assistant.length;i++){
            numbers.add(assistant[i]);
        }
    }
 
    //here by error
    private void get_Figures(int num){
        while(num > 0){
            numbers.add(num%10);
            num/=10;
        }
    }
 
    private String transform_Number(int i){
        if(numbers.get(i) == 0){
            return "0000";
        }
        else if(numbers.get(i) == 1){
            return "0001";
        }
        else if(numbers.get(i) == 2){
            return "0010";
        }
        else if(numbers.get(i) == 3){
            return "0011";
        }
        else if(numbers.get(i) == 4){
            return "0100";
        }
        else if(numbers.get(i) == 5){
            return "0101";
        }
        else if(numbers.get(i) == 6){
            return "0110";
        }
        else if(numbers.get(i) == 7){
            return "0111";
        }
        else if(numbers.get(i) == 8){
            return "1000";
        }
        else if(numbers.get(i) == 9){
            return "1001";
        }
 
        return "";
    }
}
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Tengo problemas para obtener el texto de un JTextFiled. Tras varios métodos, no lo logro.

Publicado por Fernando (2 intervenciones) el 26/04/2020 00:57:30
Disculpe por no contestar antes, estuve con un examen. Agradecería la ayuda.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar