Как реализовать этикетку, которая не дает никаких указаний было Cl

Этот совет Java Swing иллюстрирует метод реализации этикетку, которая не дает никаких указаний была нажата. Это расширение класса JLabel которая прислушивается к кликов мыши и преобразует их в ActionEvents, которая, в свою очередь, сообщила через EventListenersList объект.


import java.awt.*;

import java.awt.event.*;

import javax.swing.*;



public class SecretLabel extends JLabel {

    

    public SecretLabel(String msg) {

        

        super(msg);

        

        addMouseListener(new MouseAdapter() {

            public void mouseClicked(MouseEvent me) {

                fireActionPerformed(new ActionEvent(SecretLabel.this,

                        ActionEvent.ACTION_PERFORMED,

                        "SecretMessage"));

            }

        });

    }

    

    public void addActionListener(ActionListener l) {

        // We'll just use the listenerList we inherit from JComponent.

        listenerList.add(ActionListener.class, l);

    }

    

    public void removeActionListener(ActionListener l) {

        listenerList.remove(ActionListener.class, l);

    }

    

    protected void fireActionPerformed(ActionEvent ae) {

        

        Object[] listeners = listenerList.getListeners(ActionListener.class);

        

        for (int i = 0; i < listeners.length; i++) {

            ((ActionListener)listeners[i]).actionPerformed(ae);

        }

    }

}

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

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

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