Evenimente și ascultători în Java

Bună ziua, astăzi voi explica cum să utilizeze evenimente și ascultători în Java, acest lucru este foarte important în aplicațiile grafice.

Evenimente sunt acțiunile Că utilizatorul poate efectua, atunci când efectuează un eveniment, apare o serie de acțiuni. De exemplu, dacă utilizatorul apasă un buton numit „Ieșire” pentru a închide aplicația. Un alt exemplu foarte folosit este de a valida textul pe care l-am introdus într-un câmp de text.

ascultători (ascultători sau ascultători în spaniolă) sunt responsabili pentru controlul evenimentelor, așteaptă ca evenimentul să apară și să efectueze o serie de acțiuni. În opinia evenimentului, vom avea nevoie de un ascultător care să o controleze.

Fiecare ascultător are o serie de metode care Trebuie să fie implementată. Deși vrem doar să folosim unul dintre ei.

Linii pe care le folosim vor fi în pachetul java.awt.event.

Să vedem diferiții ascultători care există , definiția metodelor și a evenimentelor care controlează:

  • JButton: Faceți clic sau apăsați pe Enter cu focalizarea activată pe acesta.
  • JList: Faceți dublu clic pe un element din listă.
  • Jmenuitem: Selectați o opțiune de meniu.
  • Jterxtfield: Când apăsați ENTER cu focalizarea activată.
  • FocusListener

    iv id = „11bdc434ca”

    Acestea sunt cele mai frecvente evenimente, le vom vedea mai adâncime Posturi ulterioare

    Pentru a adăuga un eveniment, vom urma următoarea sintaxă:

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

    O altă formă este:

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

    De exemplu:

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

    al celui de-al doilea mod ar fi astfel:

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

    Este posibil ca unele componente să ne convine să fim un atribut.

    Am lăsat un exemplu complet cu diferite tipuri de evenimente:

    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){}});}}

    cu NetBeans, pur și simplu faceți clic pe un element (în partea de design) și alegeți din meniul Evenimente, evenimentul pe care vrem să-l programați și să parcă separat în cod.
    Sper că te ajuți. Dacă aveți îndoieli, întrebați. Suntem aici pentru a vă ajuta.

    Leave a Comment

    Adresa ta de email nu va fi publicată. Câmpurile obligatorii sunt marcate cu *

    numele ascultătorului Metode Evenimente
    actionlistener apare atunci când faceți clic pe o componentă, de asemenea Dacă apăsați Enter cu focalizarea pe componenta.

    Publicul de acțiune PUTERPERFORMED (ACȚIUNEA E)

    Keylistener Apare când apăsați o tastă. În funcție de metodă, acesta va schimba modul de apăsare a tastei.

    Public VOID Keytyed (Keyevent E)
    Public Vid Keypsion (Keyevent e) KeyRelesed (Keyevent E)

    Când apăsăm o cheie, în conformitate cu ascultătorul:

    • Keytyped: când apăsați și scăpând cheia.
    • KeyPresed: Când apăsați tasta.
    • KeyReased: Când eliberați cheia.
    Are loc atunci când o componentă câștigă sau pierde focalizarea, adică este selectată.

    Public VOID FUNCTIONGINED (Focusevent E)
    Public VOD FOCUSLOSTLOSTLOST (Focusevent E)

    Primiți sau pierdeți focalizarea.
    MouseListener apare atunci când efectuăm o acțiune cu mouse-ul.

    Volumul public gol (mouse-ul e)

    r)

    Volumul public (mouse-ul E)

    Public VODEXITED (MouseEvent E)

    Volumul public (MouseEvent E)

    SolutionSsesesed (MouseEvent E)

    Potrivit ascultătorului:

    • MouseCiked: Click și Drop.
    • Moutentered: Introduceți o componentă cu indicatorul.
    • mouse-ul: Ieșiți o componentă cu pointerul
    • MousePresed: Apăsați butonul.
    • mouseRelesed: Eliberați butonul.
    MousemotionListener IT produce cu mișcarea mouse-ului.

    Volumul public mousedragged (mouse-ul E)
    Public Void MousMoved (MouseEvent E)

    Potrivit ascultătorului :

    • mousedragged: faceți clic și trageți o componentă.
    • mousemoved: atunci când se deplasează indicatorul peste un