Java - jtextArea para numeros help me

 
Vista:

jtextArea para numeros help me

Publicado por stiven (1 intervención) el 16/07/2021 20:17:50
ayuda por favor
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

jtextArea para numeros help me

Publicado por Kabuto (1044 intervenciones) el 17/07/2021 01:07:26
Pues no das muchos datos para saber qué necesitas o qué es lo que necesitas aprender...

Supongo que quieres un JTextArea en el que solo se puedan teclear los números.
Bien, puedes hacerlo añadiéndole un KeyListener a ese JTextArea.
Este Listener lo que ha de hacer es interceptar el carácter que se teclea y comprobar si es un dígito. Se puede hacer con un switch.
Si es digito lo aceptamos añadiéndolo al JTextArea.
Si no es digito, "consumimos" la pulsación para rechazarlo

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
import java.awt.event.KeyEvent;
import java.awt.event.KeyListener;
 
import javax.swing.BorderFactory;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JTextArea;
import javax.swing.SwingUtilities;
 
public class SoloNumeros extends JFrame{
 
	private JTextArea areaNumeros;
 
	public SoloNumeros() {
 
		areaNumeros = new JTextArea(10, 20);
		areaNumeros.addKeyListener(new AceptarSoloNumeros());
 
		JPanel pnPrincipal = new JPanel();
		pnPrincipal.add(areaNumeros);
		pnPrincipal.setBorder(BorderFactory.createEmptyBorder(25, 25, 25, 25));
 
 
		setContentPane(pnPrincipal);
		setTitle("Solo números");
		setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		pack();
		setLocationRelativeTo(null);
		setVisible(true);
	}
 
	private class AceptarSoloNumeros implements KeyListener {
 
		@Override
		public void keyTyped(KeyEvent e) {
			//Recogemos caracter introducido
			char caracter = e.getKeyChar();
			//Comprobamos si es un número
			switch(caracter) {
			case '1':
			case '2':
			case '3':
			case '4':
			case '5':
			case '6':
			case '7':
			case '8':
			case '9':
			case '0':
				//Es número, lo aceptamos
				areaNumeros.append(Character.toString(caracter));
			default:
				//¡¡No es número!! Lo rechazamos
				e.consume();
			}
		}
 
		@Override
		public void keyPressed(KeyEvent e) {}
 
		@Override
		public void keyReleased(KeyEvent e) {}
 
	}
 
	public static void main(String[] args) {
		SwingUtilities.invokeLater(new Runnable() {
			@Override
			public void run() {
				new SoloNumeros();
			}
		});
	}
 
}
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