0% encontró este documento útil (0 votos)
23 vistas13 páginas

Eventos de Java

Cargado por

soporte.mt.ih
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como DOCX, PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
23 vistas13 páginas

Eventos de Java

Cargado por

soporte.mt.ih
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como DOCX, PDF, TXT o lee en línea desde Scribd
Está en la página 1/ 13

Los eventos son las acciones que puede realizar el usuario, al realizar un evento se produce una serie de acciones.

Por ejemplo, si el usuario pulsa un botón llamado “Salir” cerrara


la aplicación. Otro ejemplo muy usado es para validar texto que introduzcamos en un campo de texto.

Los Listeners (oyentes o escuchadores en español) se encargan de controlar los eventos, esperan a que el evento se produzca y realiza una serie de acciones. Según el evento,
necesitaremos un Listener que lo controle.

Cada Listener tiene una serie de métodos que debemos implementar obligatoriamente, aunque solo queramos usar uno solo de ellos.

Los Listeners que usaremos estarán en el paquete java.awt.event.

Vamos a ver los distintos Listeners que existen, la definición de sus métodos y los eventos que controlan:

NOMBRE LISTENER DESCRIPCIÓN MÉTODOS EVENTOS

public void actionPerformed(ActionEvent e)


ActionListener Se produce al hacer click en un componente, también si se pulsa Enter teniendo el foco en el
componente.

 JButton: click o pulsar Enter con el foco activado en él.

 JList: doble click en un elemento de la lista.

 JMenuItem: selecciona una opción del menú.

 JTextField: al pulsar Enter con el foco activado.


KeyListener Se produce al pulsar una tecla. según el método cambiara la forma de pulsar la tecla. public void keyTyped(KeyEvent e) Cuando pulsamos una tecla, segun el Listener:
NOMBRE LISTENER DESCRIPCIÓN MÉTODOS EVENTOS

public void keyPressed(KeyEvent e)

public void keyReleased(KeyEvent e)

 keyTyped:al pulsar y soltar la tecla.

 keyPressed: al pulsar la tecla.

 keyReleased: al soltar la tecla.

FocusListener Se produce cuando un componente gana o pierde el foco, es decir, que esta seleccionado. public void focusGained(FocusEvent e) Recibir o perder el foco.

public void focusLost(FocusEvent e)


MouseListener Se produce cuando realizamos una acción con el ratón. public void mouseClicked(MouseEvent e) Según el Listener:

public void mouseEntered(MouseEvent e)


 mouseCliked: pinchar y soltar.

public void mouseExited(MouseEvent e)


 mouseEntered: entrar en un componente con el puntero.
NOMBRE LISTENER DESCRIPCIÓN MÉTODOS EVENTOS

public void mousePressed(MouseEvent e)


 mouseExited: salir de un componente con el puntero

public void mouseReleased(MouseEvent e)

 mousePressed: presionar el botón.

 mouseReleased: soltar el botón.

MouseMotionListener Se produce con el movimiento del mouse. public void mouseDragged(MouseEvent e) Según el Listener:

public void mouseMoved(MouseEvent e)

 mouseDragged: click y arrastrar un componente.

 mouseMoved: al mover el puntero sobre un elemento

Estos son los más comunes, otros eventos los veremos con más profundidad en posteriores posts

Para añadir un evento, seguiremos la siguiente sintaxis:

componente.add"tipo evento"(new "tipo evento"(){


metodos del evento

});

Otra forma es:

"Tipo evento" "nombre"= new "tipo evento"{

metodos del evento

};

componente.add"Tipo evento"("nombre");

Por ejemplo:

1 boton1.addActionListener(new ActionListener(){
2 public void actionPerformed (){
3 //Acciones
4 }
});
5
De la segunda manera seria así:

1 ActionListener al=new ActionListener(){


2 public void actionPerformed (){
3 //Acciones
4 }
};
5
boton1.addActionListener(al);
6
Es posible que algún que otro componente nos convenga que sea un atributo.

Os dejo un ejemplo completo con distintos tipos de eventos:

1 import java.awt.EventQueue;
import javax.swing.*;
2
import java.awt.event.*;
3
4 public class EjemploEvento extends JFrame {
5
6 private JPanel contentPane;
7 private JTextField textField;
8 private JTextField textField_1;
private JTextField textField_2;
9 private JComboBox<String> comboBox;
10 private JRadioButton rdbtnOpcion;
11 private JRadioButton rdbtnOpcion_1;
12 private JRadioButton rdbtnOpcion_2;
private JLabel lblEstasSobreLa;
13
14 /**
15 * Launch the application.
16 */
17 public static void main(String[] args) {
18 EventQueue.invokeLater(new Runnable() {
public void run() {
19 try {
20 EjemploEvento frame = new EjemploEvento();
21 frame.setVisible(true);
22 } catch (Exception e) {
e.printStackTrace();
23
}
24 }
25 });
26 }
27
28 /**
29 * Create the frame.
*/
30
public EjemploEvento() {
31
32 //Añade un titulo, no es estrictamente necesario
33 setTitle("Titulo de la ventana");
34
35 /*
36 * Coordenadas x y de la aplicacion y su altura y longitud,
* si no lo indicamos aparecera una ventana muy pequeña
37 */
38 setBounds(400, 200, 655, 520);
39
40 /*
41 * Indica que cuando se cierre la ventana se acaba la aplicacion,
* si no lo indicamos cuando cerremos la ventana la aplicacion seguira funcionando
42 */
43 setDefaultCloseOperation(EXIT_ON_CLOSE);
44
45 //Hace visible la ventana, si no lo hacemos no veremos la aplicacion
46 setVisible(true);
47
48 //Creamos el panel
contentPane =new JPanel();
49
50 //Indicamos su diseño
51 contentPane.setLayout(null);
52
53 //asigno el pannel a la ventana
54 setContentPane(contentPane);
55
//Componentes
56
57 //Etiquetas
58
59 JLabel lblEscribeElNombre = new JLabel("Escribe el nombre el nombre de una persona sin digitos");
60 lblEscribeElNombre.setBounds(369, 32, 229, 25);
61 contentPane.add(lblEscribeElNombre);
62
JLabel lblEligeUnaOpcin = new JLabel("Elige una opci\u00F3n:");
63 lblEligeUnaOpcin.setBounds(176, 32, 109, 14);
64 contentPane.add(lblEligeUnaOpcin);
65
66 JLabel lblPulsaElBoton = new JLabel("Pulsa el boton");
67 lblPulsaElBoton.setBounds(47, 32, 85, 14);
68 contentPane.add(lblPulsaElBoton);
69
lblEstasSobreLa = new JLabel("Estas sobre la ");
70 lblEstasSobreLa.setBounds(158, 224, 192, 14);
71 contentPane.add(lblEstasSobreLa);
72
73 JLabel lblSoloSePuede = new JLabel("Solo se puede escribir digitos");
74 lblSoloSePuede.setBounds(371, 208, 193, 14);
contentPane.add(lblSoloSePuede);
75
76 JLabel lblNombreElegido = new JLabel("Nombre Elegido");
77 lblNombreElegido.setBounds(175, 124, 110, 14);
78 contentPane.add(lblNombreElegido);
79
80 //Campo de texto
81
textField = new JTextField();
82 textField.setBounds(371, 68, 193, 26);
83 contentPane.add(textField);
84
85 textField_1 = new JTextField();
86 textField_1.setEditable(false);
87 textField_1.setBounds(175, 150, 141, 20);
contentPane.add(textField_1);
88
89 textField_2 = new JTextField();
90 textField_2.setBounds(371, 247, 126, 20);
91 contentPane.add(textField_2);
92
93 //Botones
94
JButton btnPulsame = new JButton("Pulsame");
95 btnPulsame.setBounds(43, 70, 89, 23);
96 contentPane.add(btnPulsame);
97
98 JButton btnAnadir= new JButton("A\u00F1adir");
99 btnAnadir.setBounds(371, 124, 89, 23);
100 contentPane.add(btnAnadir);
101
//Botones de radio
102
103 rdbtnOpcion= new JRadioButton("Opcion 1");
104 rdbtnOpcion.setBounds(43, 194, 109, 23);
105 contentPane.add(rdbtnOpcion);
106
107 rdbtnOpcion_1 = new JRadioButton("Opcion 2");
rdbtnOpcion_1.setBounds(43, 220, 109, 23);
108 contentPane.add(rdbtnOpcion_1);
109
110 rdbtnOpcion_2 = new JRadioButton("Opcion 3");
111 rdbtnOpcion_2.setBounds(43, 246, 109, 23);
112 contentPane.add(rdbtnOpcion_2);
113
//Agrupamos los botnones de radio
114 ButtonGroup bgroup = new ButtonGroup();
115 bgroup.add(rdbtnOpcion);
116 bgroup.add(rdbtnOpcion_1);
117 bgroup.add(rdbtnOpcion_2);
118
119 //Menu de opciones
comboBox = new JComboBox<>();
120 comboBox.setBounds(175, 70, 141, 22);
121 contentPane.add(comboBox);
122
123 //Añadimos opciones
124 comboBox.addItem("Fernando");
125 comboBox.addItem("Alberto");
comboBox.addItem("Arturo");
126
127 //Eventos
128
129 btnPulsame.addActionListener(new ActionListener(){
130 public void actionPerformed (ActionEvent e){
131 JOptionPane.showMessageDialog(contentPane, "¡Me has pulsado!");
132 }
});
133
134 //En este caso hemos debido de converir el componente en un atributo
135 comboBox.addActionListener(new ActionListener(){
136 public void actionPerformed (ActionEvent e){
137 textField_1.setText(comboBox.getItemAt(comboBox.getSelectedIndex()));
}
138 });
139
140 textField.addKeyListener(new KeyListener(){
141 public void keyTyped (KeyEvent e){
142 //Si el caracter introducido es un digito...
143 if (Character.isDigit(e.getKeyChar())){
//... no lo escribe
144 e.consume();
145 }
146 }
147 public void keyReleased(KeyEvent e){
148
}
149 public void keyPressed(KeyEvent e){
150
151 }
152 });
153
154 btnAnadir.addActionListener(new ActionListener(){
155 public void actionPerformed (ActionEvent e){
comboBox.addItem(textField.getText());
156
157 textField.setText("");
JOptionPane.showMessageDialog(contentPane, "Nombre Añadido");
158
}
159 });
160
161 rdbtnOpcion.addMouseListener(new MouseListener(){
162 public void mouseClicked(MouseEvent e){
163
164 }
public void mouseEntered(MouseEvent e){
165 lblEstasSobreLa.setText(lblEstasSobreLa.getText()+rdbtnOpcion.getText());
166 }
167 public void mouseExited(MouseEvent e){
168 lblEstasSobreLa.setText("Estas sobre la ");
}
169 public void mousePressed(MouseEvent e){
170
171 }
172 public void mouseReleased(MouseEvent e){
173
174 }
175 });
176
rdbtnOpcion_1.addMouseListener(new MouseListener(){
177 public void mouseClicked(MouseEvent e){
178
179 }
180 public void mouseEntered(MouseEvent e){
181 lblEstasSobreLa.setText(lblEstasSobreLa.getText()+rdbtnOpcion_1.getText());
}
182 public void mouseExited(MouseEvent e){
183 lblEstasSobreLa.setText("Estas sobre la ");
184 }
185 public void mousePressed(MouseEvent e){
186
187 }
public void mouseReleased(MouseEvent e){
188
189
190 }
});
191
192 rdbtnOpcion_2.addMouseListener(new MouseListener(){
193 public void mouseClicked(MouseEvent e){
194
195 }
196 public void mouseEntered(MouseEvent e){
197 lblEstasSobreLa.setText(lblEstasSobreLa.getText()+rdbtnOpcion_2.getText());
}
198 public void mouseExited(MouseEvent e){
199 lblEstasSobreLa.setText("Estas sobre la ");
200 }
201 public void mousePressed(MouseEvent e){
202
}
203 public void mouseReleased(MouseEvent e){
204
205 }
206 });
207
208 textField_2.addKeyListener(new KeyListener(){
public void keyTyped (KeyEvent e){
209
//Si el caracter introducido no es un digito...
210 if (!Character.isDigit(e.getKeyChar())){
211 //... no lo escribe
212 e.consume();
213 }
}
214 public void keyReleased(KeyEvent e){
215
216 }
217 public void keyPressed(KeyEvent e){
218
219 }
});
220
221
222 }
}
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
Con netBeans, simplemente hacemos click derecho en un elemento (en la parte de diseño) y elegimos en el menú Eventos, el evento queremos programar y nos aparecera por
separado en el código.
Espero que os sea de ayuda. Si tenéis dudas, preguntad. Estamos para ayudarte.

También podría gustarte