Eventos e ouvintes Em Java

Olá a todos, hoje vou explicar como usar eventos e ouvintes em Java, isso é muito importante em aplicações gráficas.

eventos são as ações que o usuário pode executar, ao executar um evento, ocorre uma série de ações. Por exemplo, se o usuário pressiona um botão chamado “Exit” para fechar o aplicativo. Outro exemplo muito utilizado é Validar texto que foi introduzida num campo de texto.

Os ouvintes (ouvintes ou ouvintes em espanhol) Eles são responsáveis por controlar os eventos, eles esperam que o evento ocorra e execute uma série de ações. De acordo com o evento, precisaremos de um ouvinte que o controla.

Cada ouvinte tem uma série de métodos que deve ser implementada. Embora nós só quer usar um deles.

as linhas que uso será no pacote java.awt.event.

vamos ver os diferentes ouvintes que existem , a definição de seus métodos e eventos que o controle:

nome Listener Descrição Métodos Eventos
ActionListener ocorre quando você clica em um componente, também Se você pressionar ENTER com o foco no componente. VOID PUBLIC (ActionEvent E)
  • JButton: Clique ou pressione ENTER com o foco activado nele
  • JList:. Dê um duplo clique em um item da lista
  • JMenuItem:.. Selecione uma opção do menu
  • jtextfield: Quando você pressiona ENTER com o foco ativado.
lagartisler Ocorre quando você pressiona uma tecla. Dependendo do método, ele mudará a maneira de pressionar a tecla.

Void público keytyed (keyevent e)
vazio público (Keyevent E)
Vazio Público keyReleased (KeyEvent e)

Quando pressionar uma tecla, de acordo com o ouvinte:

  • keyTyped:. ao pressionar e soltar a tecla
  • keyPressed:. ao pressionar a tecla
  • keyReleased: Quando você soltar a tecla.
focusListener ocorre quando um ganha componentes ou perde o foco, ou seja, ele é selecionado.

Pública FocusGained void (FocusEvent e)
Pública FocusLost void (FocusEvent e)

Receber ou perder o foco.
MouseListener ocorre quando executar uma ação com o mouse.

público mouseClicked void (MouseEvent E)

público MouseEnterred void (MouseEvent E)

mouseExited public void (MouseEvent E)

public void mousePressed (MouseEvent E)

público MouseResesed void (MouseEvent e)

de acordo com o Listener:

  • MouseCliked:. Clique e soltar
  • Mousentered: insira um componente com o ponteiro.
  • MouseExited: Sair de um componente com o ponteiro
  • mouseprimido: pressione o botão.
  • mouseReleased:. Solte o botão
MouseMotionListener É produz com o movimento do mouse.

public void mouseDragged (MouseEvent E)
public void MOUSMOVED (MouseEvent E)

de acordo com o Listener :

  • mouseDragged:. clique e arraste um componente
  • mouseMoved: ao mover o ponteiro sobre um

Estes são os mais comuns, outros eventos vamos vê-los mais profundidade em posts mais tarde

Para adicionar um evento, vamos seguir a seguinte sintaxe:

componente.add"tipo evento"(new "tipo evento"(){ metodos del evento});

Outra forma é a seguinte:

"Tipo evento" "nombre"= new "tipo evento"{ metodos del evento};componente.add"Tipo evento"("nombre");

por exemplo:

boton1.addActionListener(new ActionListener(){ public void actionPerformed (){ //Acciones }});

da segunda maneira seria assim:

ActionListener al=new ActionListener(){ public void actionPerformed (){ //Acciones }};boton1.addActionListener(al);

é possível que algumas outras ações componentes-nos a ser um atributo

deixo um exemplo completo com diferentes tipos de eventos:.

import java.awt.EventQueue;import javax.swing.*;import java.awt.event.*;public class EjemploEvento extends JFrame {private JPanel contentPane;private JTextField textField;private JTextField textField_1;private JTextField textField_2;private JComboBox<String> comboBox;private JRadioButton rdbtnOpcion;private JRadioButton rdbtnOpcion_1;private JRadioButton rdbtnOpcion_2;private JLabel lblEstasSobreLa;/** * Launch the application. */public static void main(String args) {EventQueue.invokeLater(new Runnable() {public void run() {try {EjemploEvento frame = new EjemploEvento();frame.setVisible(true);} catch (Exception e) {e.printStackTrace();}}});}/** * Create the frame. */public EjemploEvento() {//Añade un titulo, no es estrictamente necesariosetTitle("Titulo de la ventana");/* * Coordenadas x y de la aplicacion y su altura y longitud, * si no lo indicamos aparecera una ventana muy pequeña */setBounds(400, 200, 655, 520);/* * Indica que cuando se cierre la ventana se acaba la aplicacion, * si no lo indicamos cuando cerremos la ventana la aplicacion seguira funcionando */setDefaultCloseOperation(EXIT_ON_CLOSE);//Hace visible la ventana, si no lo hacemos no veremos la aplicacionsetVisible(true);//Creamos el panelcontentPane =new JPanel();//Indicamos su diseñocontentPane.setLayout(null);//asigno el pannel a la ventanasetContentPane(contentPane);//Componentes//EtiquetasJLabel lblEscribeElNombre = new JLabel("Escribe el nombre el nombre de una persona sin digitos");lblEscribeElNombre.setBounds(369, 32, 229, 25);contentPane.add(lblEscribeElNombre);JLabel lblEligeUnaOpcin = new JLabel("Elige una opci\u00F3n:");lblEligeUnaOpcin.setBounds(176, 32, 109, 14);contentPane.add(lblEligeUnaOpcin);JLabel lblPulsaElBoton = new JLabel("Pulsa el boton");lblPulsaElBoton.setBounds(47, 32, 85, 14);contentPane.add(lblPulsaElBoton);lblEstasSobreLa = new JLabel("Estas sobre la ");lblEstasSobreLa.setBounds(158, 224, 192, 14);contentPane.add(lblEstasSobreLa);JLabel lblSoloSePuede = new JLabel("Solo se puede escribir digitos");lblSoloSePuede.setBounds(371, 208, 193, 14);contentPane.add(lblSoloSePuede);JLabel lblNombreElegido = new JLabel("Nombre Elegido");lblNombreElegido.setBounds(175, 124, 110, 14);contentPane.add(lblNombreElegido);//Campo de textotextField = new JTextField();textField.setBounds(371, 68, 193, 26);contentPane.add(textField);textField_1 = new JTextField();textField_1.setEditable(false);textField_1.setBounds(175, 150, 141, 20);contentPane.add(textField_1);textField_2 = new JTextField();textField_2.setBounds(371, 247, 126, 20);contentPane.add(textField_2);//BotonesJButton btnPulsame = new JButton("Pulsame");btnPulsame.setBounds(43, 70, 89, 23);contentPane.add(btnPulsame);JButton btnAnadir= new JButton("A\u00F1adir");btnAnadir.setBounds(371, 124, 89, 23);contentPane.add(btnAnadir);//Botones de radiordbtnOpcion= new JRadioButton("Opcion 1");rdbtnOpcion.setBounds(43, 194, 109, 23);contentPane.add(rdbtnOpcion);rdbtnOpcion_1 = new JRadioButton("Opcion 2");rdbtnOpcion_1.setBounds(43, 220, 109, 23);contentPane.add(rdbtnOpcion_1);rdbtnOpcion_2 = new JRadioButton("Opcion 3");rdbtnOpcion_2.setBounds(43, 246, 109, 23);contentPane.add(rdbtnOpcion_2);//Agrupamos los botnones de radioButtonGroup bgroup = new ButtonGroup();bgroup.add(rdbtnOpcion);bgroup.add(rdbtnOpcion_1);bgroup.add(rdbtnOpcion_2);//Menu de opcionescomboBox = new JComboBox<>();comboBox.setBounds(175, 70, 141, 22);contentPane.add(comboBox);//Añadimos opcionescomboBox.addItem("Fernando");comboBox.addItem("Alberto");comboBox.addItem("Arturo");//EventosbtnPulsame.addActionListener(new ActionListener(){public void actionPerformed (ActionEvent e){JOptionPane.showMessageDialog(contentPane, "¡Me has pulsado!");}});//En este caso hemos debido de converir el componente en un atributocomboBox.addActionListener(new ActionListener(){public void actionPerformed (ActionEvent e){textField_1.setText(comboBox.getItemAt(comboBox.getSelectedIndex()));}});textField.addKeyListener(new KeyListener(){public void keyTyped (KeyEvent e){//Si el caracter introducido es un digito...if (Character.isDigit(e.getKeyChar())){//... no lo escribee.consume();}}public void keyReleased(KeyEvent e){}public void keyPressed(KeyEvent e){}});btnAnadir.addActionListener(new ActionListener(){public void actionPerformed (ActionEvent e){comboBox.addItem(textField.getText());textField.setText("");JOptionPane.showMessageDialog(contentPane, "Nombre Añadido");}});rdbtnOpcion.addMouseListener(new MouseListener(){public void mouseClicked(MouseEvent e){}public void mouseEntered(MouseEvent e){lblEstasSobreLa.setText(lblEstasSobreLa.getText()+rdbtnOpcion.getText());}public void mouseExited(MouseEvent e){lblEstasSobreLa.setText("Estas sobre la ");}public void mousePressed(MouseEvent e){}public void mouseReleased(MouseEvent e){}});rdbtnOpcion_1.addMouseListener(new MouseListener(){public void mouseClicked(MouseEvent e){}public void mouseEntered(MouseEvent e){lblEstasSobreLa.setText(lblEstasSobreLa.getText()+rdbtnOpcion_1.getText());}public void mouseExited(MouseEvent e){lblEstasSobreLa.setText("Estas sobre la ");}public void mousePressed(MouseEvent e){}public void mouseReleased(MouseEvent e){}});rdbtnOpcion_2.addMouseListener(new MouseListener(){public void mouseClicked(MouseEvent e){}public void mouseEntered(MouseEvent e){lblEstasSobreLa.setText(lblEstasSobreLa.getText()+rdbtnOpcion_2.getText());}public void mouseExited(MouseEvent e){lblEstasSobreLa.setText("Estas sobre la ");}public void mousePressed(MouseEvent e){}public void mouseReleased(MouseEvent e){}});textField_2.addKeyListener(new KeyListener(){public void keyTyped (KeyEvent e){//Si el caracter introducido no es un digito...if (!Character.isDigit(e.getKeyChar())){//... no lo escribee.consume();}}public void keyReleased(KeyEvent e){}public void keyPressed(KeyEvent e){}});}}

com NetBeans, nós simplesmente clicar em um item (na parte de design) e escolha no menu Eventos, o evento que queremos para o programa e parecem separadamente no código <. br> Espero que você ajude você. Se você tem dúvidas, pergunte. Estamos aqui para ajudá-lo.

Leave a Comment

O seu endereço de email não será publicado. Campos obrigatórios marcados com *