Java - SOS

 
Vista:

SOS

Publicado por YARG (1 intervención) el 30/05/2021 21:33:32
Hola buenas tardes estoy ingresando al mundod e la programacion de java con netbean y tengo una tarea que es realizar un apllet en el quie al ingresar un numero en una caja de texto y haga click sobre un boton de carcular me muestre 4 etiquetas en las cuales se realice lo siguiente:
1. Se muestre en el primer Label la cantidad de horas equivalente del nro ingresado en la caja de texto.
2. Se muestre en el segundo Label la cantidad de minutos equivalente del nro ingresado en la caja de texto.
3. 2. Se muestre en el tercer Label la cantidad de segundos equivalente del nro ingresado en la caja de texto.

Realice la interfaz grafica y en el boton usando el evento mouseclick programe esto:

private void jButton1MouseClicked(java.awt.event.MouseEvent evt) {


jTFDias cajaTexto = new jTFDias(int);

jLabel6.setText("Tiene horas" + (cajaTexto*24));
jLabel7.setText("Tiene Minutos;" +(cajaTexto*1140));
jLabel8.setText("Tiene Segundos;"*86400);
jLabel9.setText(cajaTexto+ "Tiene" + jLabel6 + jLabel7 + jLabel8);
pero al ejecutarlo no hace nada.
Podrian ayudarme por favor... Que me hace falta? o que tengo mal? De antemano muchas GHracias
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 Kabuto
Val: 3.428
Oro
Ha mantenido su posición en Java (en relación al último mes)
Gráfica de Java

SOS

Publicado por Kabuto (1381 intervenciones) el 31/05/2021 00:20:17
No se que es jTFDias

1
jTFDias cajaTexto = new jTFDias(int);

Posiblemente una clase que hereda de JTextField, pero el constructor no parece correcto. Solo se le está pasando la palabra reservada int.
Dudo que eso compile.


Sobre esto:
1
jLabel6.setText("Tiene horas" + (cajaTexto*24));

cajaTexto, que insisto presumo que a fin de cuentas es un JTextField, no creo que puedas multiplicar de esa manera el valor que contiene.
Habría que obtener el valor con el método getText(). Este método retorna el valor como String, así que si queremos multiplicar, habrá que convertirlo a int con Integer.parseInt()
Lo mismo para los minutos y los segundos.
Aunque si jTFDias es una clase escrita por ti, puedes crearle un método que retorne directamente el valor como int, para no tener que parsearlo en el programa principal.


Algo parecido ocurre con esto:
1
jLabel9.setText(cajaTexto+ "Tiene" + jLabel6 + jLabel7 + jLabel8);

No puedes concatenar JLabels directamente. No son texto.
Contienen un texto, pero no son texto.
Tienes que obtener el texto que contienen con getText() para poder concatenarlos
1
jLabel9.setText(cajaTexto+ "Tiene" + jLabel6.getText() + jLabel7.getText() + jLabel8.getText());
Faltaría intercalar espacios en blanco para que no salga todo junto.


Te dejo un ejemplo rápido de cómo lo haría yo. En este caso, los valores los calculo y guardo en unas variables int. Esto facilita los cálculos así como luego construir el mensaje del cuarto JLabel

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
public class HorasMinSeg extends JFrame{
 
	private JTextField campoDia;
	private JLabel labelHoras;
	private JLabel labelMinutos;
	private JLabel labelSegundos;
	private JLabel labelMensaje;
	private JButton btCalcular;
 
	public HorasMinSeg() {
 
		iniciarComponentes();
 
		JPanel pnDias = new JPanel();
		pnDias.add(new JLabel("Dias: "));
		pnDias.add(campoDia);
 
		JPanel pnBoton = new JPanel();
		pnBoton.add(btCalcular);
 
		JPanel pnHoras = new JPanel();
		pnHoras.add(new JLabel("Horas: "));
		pnHoras.add(labelHoras);
		JPanel pnMinutos = new JPanel();
		pnMinutos.add(new JLabel("Minutos: "));
		pnMinutos.add(labelMinutos);
		JPanel pnSegundos = new JPanel();
		pnSegundos.add(new JLabel("Segundos: "));
		pnSegundos.add(labelSegundos);
 
		JPanel pnTiempos = new JPanel();
		pnTiempos.setLayout(new GridLayout(1,3));
		pnTiempos.add(pnHoras);
		pnTiempos.add(pnMinutos);
		pnTiempos.add(pnSegundos);
 
		JPanel pnMensaje = new JPanel();
		pnMensaje.add(labelMensaje);
 
		setLayout(new GridLayout(4, 1));
		add(pnDias); add(pnBoton); add(pnTiempos);
		add(pnMensaje);
 
 
		setTitle("Tiempos");
		setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		setSize(550, 200);
		setLocationRelativeTo(null);
		setVisible(true);
	}
 
	private void iniciarComponentes() {
		campoDia = new JTextField(4);
		labelHoras = new JLabel();
		labelHoras.setForeground(Color.BLUE);
		labelMinutos = new JLabel();
		labelMinutos.setForeground(Color.BLUE);
		labelSegundos = new JLabel();
		labelSegundos.setForeground(Color.BLUE);
		labelMensaje = new JLabel();
		labelMensaje.setForeground(Color.RED);
 
		btCalcular = new JButton("Calcular");
		btCalcular.addMouseListener(new AccionCalcular());
	}
 
	private class AccionCalcular implements MouseListener {
 
		@Override
		public void mouseClicked(MouseEvent e) {
			//Obtenemos dias introducidos
			int dias = Integer.parseInt(campoDia.getText());
			//Calculamos valores
			int horas = dias * 24;
			int minutos = horas * 60;
			int segundos = minutos * 60;
			//Mostramos en la interfaz
			labelHoras.setText(Integer.toString(horas));
			labelMinutos.setText(Integer.toString(minutos));
			labelSegundos.setText(Integer.toString(segundos));
			//Mensaje
			labelMensaje.setText(String.format("%d equivale a %d horas, a %d minutos y a %d segundos",
					dias, horas, minutos, segundos));
		}
 
		@Override
		public void mousePressed(MouseEvent e) { }
 
		@Override
		public void mouseReleased(MouseEvent e) { }
 
		@Override
		public void mouseEntered(MouseEvent e) { }
 
		@Override
		public void mouseExited(MouseEvent e) {	}
 
	}
 
	public static void main(String[] args) {
 
		SwingUtilities.invokeLater(new Runnable() {
			@Override
			public void run() {
				new HorasMinSeg();
			}
		});
 
	}
 
}
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