Conteúdo do Curso
Advanced Java 2077
Advanced Java 2077
Event Handling in Java GUI
In the previous chapters, we learned about creating basic GUI components such as buttons, labels, and text fields. In this chapter, we will learn about event handling, which is an essential part of GUI development in Java.
What is Event Handling?
Event handling is the process of responding to user actions, such as button clicks or mouse movements. In Java GUI development, you can use event listeners to handle events. An event listener is an object that is notified when an event occurs, and it can perform some action in response to the event.
Event Types
In Java, there are many types of events that can occur in a GUI application, such as:
- Action events: occur when a user interacts with a button or menu item.
- Mouse events: occur when a user interacts with a mouse, such as by clicking or moving the mouse.
- Key events: occur when a user presses or releases a key on the keyboard.
- Window events: occur when a window is opened or closed.
Event Listeners
To handle events in a Java GUI application, you need to create event listeners. There are several types of event listeners available in Java, such as:
ActionListener
: handles action events.MouseListener
: handles mouse events.KeyListener
: handles key events.WindowListener
: handles window events.
Each event listener interface contains one or more methods that are called when an event occurs. For example, the ActionListener
interface contains the actionPerformed()
method, which is called when an action event occurs.
Here's an example of how to create an ActionListener
to handle a button-click event:
Main
JButton button = new JButton("Click me"); button.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { System.out.println("Button clicked"); } });
This code creates a new JButton
and adds an ActionListener
to it. When the button is clicked, the actionPerformed()
method is called, and the message "Button clicked"
is printed to the console.
Here are some other examples of how to use event listeners in Java GUI development.
MouseListener
Main
JButton button = new JButton("Click me"); button.addMouseListener(new MouseAdapter() { public void mouseClicked(MouseEvent e) { System.out.println("Mouse clicked"); } });
This code creates a new JButton
and adds a MouseListener
to it. When the button is clicked, the mouseClicked()
method is called, and the message "Mouse clicked"
is printed to the console.
KeyListener
Main
JTextField textField = new JTextField(); textField.addKeyListener(new KeyAdapter() { public void keyPressed(KeyEvent e) { if (e.getKeyCode() == KeyEvent.VK_ENTER) { System.out.println("Enter key pressed"); } } });
This code creates a new JTextField
and adds a KeyListener
to it. When the user presses the Enter key, the keyPressed()
method is called, and the message "Enter key pressed"
is printed to the console.
Event Dispatch Thread
In Java GUI development, all user interface events are processed by a single thread known as the Event Dispatch Thread (EDT). This thread is responsible for handling user input, updating the user interface, and running event listeners.
It is important to remember that the EDT is a single-threaded environment, which means that all code that interacts with the user interface must run on the EDT. If you try to update the user interface from a different thread, you may get unexpected results or errors.
To ensure that your code runs on the EDT, you can use the SwingUtilities
class, which provides a set of methods for running code on the EDT.
Here's an example of how to run code on the EDT using the SwingUtilities
class:
Main
SwingUtilities.invokeLater(new Runnable() { public void run() { // code to be run on the EDT } });
This code creates a new Runnable
object and passes it to the invokeLater()
method of the SwingUtilities
class. The code inside the run()
method will be executed on the EDT.
Obrigado pelo seu feedback!