Java - Extraer el valor de un int de un método para imprimirlo en JLabel

 
Vista:

Extraer el valor de un int de un método para imprimirlo en JLabel

Publicado por Lalo (4 intervenciones) el 11/03/2017 04:08:47
Tengo un pequeño problema en java por si me pudieran ayudar, No consideren la interfaz, ni el try catch, solamente quiero poder rescatar el valor de n1 e imprimirlo en otra lámina, viene bien desglosado y comentado en el archivo adjunto, es un programa muy breve, gracias
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
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
package pruebas;
 
import javax.swing.*;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.KeyEvent;
import java.awt.event.KeyListener;
 
public class Pruebas {
 
	public static void main(String[] args) {
		Marco Pantalla= new Marco();
		Pantalla.setVisible(true);
		Pantalla.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
 
	}
 
}
 
class Marco extends JFrame{
	public Marco(){
///////////SE LE DA TAMAÑO AL MARCO, UBICACION Y TITULO 
		Dimension Tamano= Toolkit.getDefaultToolkit().getScreenSize();
		int horizontal= Tamano.width;
		int vertical=Tamano.height;
		setTitle("Pruebas");
		setSize(horizontal/2,vertical/2);
		setLocationRelativeTo(null);
/////////SE AGREGA LA LAMINA
		Lamina l= new Lamina();
		add(l);
	}
}
class Lamina extends JPanel{
	public Lamina(){
 
		setLayout(new BorderLayout());
/////////LAMINA UNO
		l1= new JPanel();
		l1.setLayout(new BorderLayout());
		m1= new JLabel ("Introduce un número", JLabel.CENTER);
		t1=new JTextField();
		b= new JButton("Siguiente");
 
		l1.add(m1, BorderLayout.NORTH);
		l1.add(t1,BorderLayout.CENTER);
		l1.add(b,BorderLayout.SOUTH);
		add(l1, BorderLayout.CENTER);
 
///////// ESTE PROGRAMA SE ABRE AL EJECUTARLO, SI NO INGRESAS NADA, TE DEVUELVE A QUE LO HAGAS
//////// SI INGESAS 0 TE DEVUELVE OTRA VEZ A QUE INGRESES UN NÚMERO
/////// SI INGRESAS UN NUMERO LO MUESTRA EN OTRA LAMINA EN UN JLABEL (PERO NO ME LO HACE) :(
 
///////// SE LE INDICA AL JTEXT FIELD QUE SOLO PUEDE CONSUMIR NÚMEROS DEL 1 AL 9
		t1.addKeyListener(new KeyListener(){
 
				public void keyTyped(KeyEvent e) {
						char c= e.getKeyChar();
						if(c<'0' || c>'9')e.consume();
												}
				public void keyPressed(KeyEvent e) {}
				public void keyReleased(KeyEvent e) {}});
 
 
		try{
		 b.addActionListener(new ActionListener(){
/////////// SE INDICA QUE CUANDO SE PRESIONE EL BOTON  SI LA EXTENSIÓN DEL TEXTO ES CERO VAYA A LA LAMINA 2 
			public void actionPerformed(ActionEvent e) {
				if(t1.getText().length()==0){
				removeAll();
				add (l2);
				revalidate();
				repaint ();
 
				}
/////////// SE INDICA QUE CUANDO SE PRESIONE EL BOTON  SI LA EXTENSIÓN DEL TEXTO ES MAYOR A CERO VAYA A LA LAMINA 3
////////// Y EXTRAIGA EL TEXTO QUE ESTÁ EN EL CAMPO DE TEXTO COMO STRING Y LO TRANSFORME EN UN ENTERO.
				if(t1.getText().length()>0){
//AQUI TRANSFORMO LO CAPTURADO EN EL JTEXT FIELD Y LO HAGO PRIMERO STRING Y LUEGO NUMERO PERO NO LOGRO JALAR  
// EL VALOR A LA LAMINA TRES QUE ESTA MAS ABAJO
				p1=t1.getText();
			 	n1= Integer.parseInt(p1);
				removeAll();
				add (l3);
				revalidate();
				repaint ();
	///////////// SI EL TEXTO YA TRANSFORMADO EN ENTERO  ES IGUAL A CERO, ME MANDA A LA LÁMINA 4
				if (n1==0){
					removeAll();
					add (l4);
					revalidate();
					repaint ();
 
				}}}});}
 
		catch (NumberFormatException f){
 
			}
////////// LAMINA 2
 
		 l2= new JPanel();
		 l2.setLayout(new BorderLayout());
		 m2= new JLabel ("Parece que dejaste un espacio vacío, reinténtalo", JLabel.CENTER);
		 b1= new JButton("Reintentar");
		 l2.add(m2,BorderLayout.CENTER);
		 l2.add(b1, BorderLayout.SOUTH);
		 b1.addActionListener(new ActionListener(){
			public void actionPerformed(ActionEvent e) {
				removeAll();
				add(l1);
				revalidate();
				repaint();
				}});
 
 
///////////LAMINA 3 
 
		 l3= new JPanel();
		 l3.setLayout(new BorderLayout());
		 b2= new JButton ("Salir");
		 b2.addActionListener(new ActionListener(){
			public void actionPerformed(ActionEvent e) {
				System.out.println("El valor de n1 es: " + n1);
				System.exit(0);
 
				}});
///////////EL PROBLEMA ESTÁ AQUÍ, NO ME JALA EL VALOR DE n1 Y ME LO MUESTRA COMO CERO, SI LO IMPRIMO EN LA CONSOLA
////////// ME LO DA BIEN........ AYUDA 
		m3= new JLabel("" + n1, JLabel.CENTER);
		l3.add(m3, BorderLayout.CENTER);
		l3.add(b2, BorderLayout.SOUTH);
 
/////////LAMINA 4
		l4= new JPanel();
		l4.setLayout(new BorderLayout());
		m4= new JLabel("Al parecer ingresaste 0 en alguno de los espacios numéricos, reintentalo", JLabel.CENTER);
		b3= new JButton("Reingresar datos");
		l4.add(m4, BorderLayout.CENTER);
		l4.add(b3, BorderLayout.SOUTH);
		b3.addActionListener(new ActionListener(){
 
			public void actionPerformed(ActionEvent e) {
				removeAll();
				revalidate();
				t1.setText("");
				add(l1);
				repaint();
				}});
 
	}
 
 
	public  static JPanel l1,l2,l3,l4,l5;
	public static JLabel m1,m2,m3,m4, m5;
	public JTextField t1;
	public JButton b,b1,b2,b3;
	public static String p1;
	public  int n1,n2;
}
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