Как использовать действие событий в Swing

Действия происходят события, когда пользователь совершает какое-либо действие с помощью одного из следующих компонентов: JButton, JCheckBox, JComboBox, JTextField или JRadioButton.

Класс должен реализовать ActionListener интерфейс для обработки этих событий. ActionPerformed (ActionEvent) метод является единственным методом интерфейса ActionListener.

В следующем примере показано, как использовать события в действие Свинг:


import javax.swing.*;

import java.awt.*;

import java.awt.event.*;



public class SwingApplication implements ActionListener {

    

    private static String labelPrefix = "Number of button clicks: ";

    private int numClicks = 0;

    final JLabel label = new JLabel(labelPrefix + "0    ");

    

    public Component createComponents() {

        JButton button = new JButton("I'm a Swing button!");

        button.setMnemonic(KeyEvent.VK_I);

        button.addActionListener(this);

        label.setLabelFor(button);

        

        /*

         * An easy way to put space between a top-level container

         * and its contents is to put the contents in a JPanel

         * that has an "empty" border.

         */

        JPanel pane = new JPanel(new GridLayout(01));

        pane.add(button);

        pane.add(label);

        pane.setBorder(BorderFactory.createEmptyBorder(

                30//top

                30//left

                10//bottom

                30//right

                );

        

        return pane;

    }

    

    public void actionPerformed(ActionEvent e) {

        numClicks++;

        label.setText(labelPrefix + numClicks);

    }

    

    

    /**

     * Create the GUI and show it.  For thread safety,

     * this method should be invoked from the

     * event-dispatching thread.

     */

    private static void createAndShowGUI() {

        

        //Make sure we have nice window decorations.

        JFrame.setDefaultLookAndFeelDecorated(true);

        

        //Create and set up the window.

        JFrame frame = new JFrame("SwingApplication");

        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

        

        SwingApplication app = new SwingApplication();

        Component contents = app.createComponents();

        frame.getContentPane().add(contents, BorderLayout.CENTER);

        

        //Display the window.

        frame.pack();

        frame.setVisible(true);

    }

    

    public static void main(String[] args) {

        //Schedule a job for the event-dispatching thread:

        //creating and showing this application's GUI.

        javax.swing.SwingUtilities.invokeLater(new Runnable() {

            public void run() {

                createAndShowGUI();

            }

        });

    }

}

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *

Можно использовать следующие HTML-теги и атрибуты: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>