Java mouselistener - PullRequest
       25

Java mouselistener

3 голосов
/ 15 июля 2011

Как мне написать о слушателе мыши, который будет реагировать на нажатие любого объекта в JFrame или на одном конкретном объекте?

Вот мой слушатель мыши -

class mouse extends MouseAdapter
{
   public void  mousePressed(MouseEvent event)
   {
     yearLabel.setText("nu");
   }
 }

Ответы [ 2 ]

9 голосов
/ 15 июля 2011

вы можете добавить глобальный слушатель мыши с помощью Toolkit.getDefaultToolkit (). AddAWTEventListener (слушатель, маска)

вот пример

public class SwingTest{
    public static void main(String[] args) {
        JPanel mainPanel = new JPanel();
        mainPanel.add(new JButton("button"));
        final JLabel label = new JLabel("label");
        mainPanel.add(label);

        showFrame("", mainPanel);

        Toolkit.getDefaultToolkit().addAWTEventListener(new AWTEventListener() {
            public void eventDispatched(AWTEvent event) {
                if(event instanceof MouseEvent){
                    MouseEvent evt = (MouseEvent)event;
                    if(evt.getID() == MouseEvent.MOUSE_CLICKED){
                        label.setText("mouse clicked at: " + evt.getPoint());
                    }
                }
            }
        }, AWTEvent.MOUSE_EVENT_MASK);
    }

    public static JFrame showFrame(String title, Component component) {
        JFrame frame = new JFrame();
        frame.setTitle(title);
        frame.getContentPane().add(component, BorderLayout.CENTER);
        frame.setSize(900, 700);
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        frame.setVisible(true);
        return frame;
    }
}
2 голосов
/ 15 июля 2011

Вы подключили этот слушатель к компоненту, содержащему yearLabel?Кроме того, я должен прокомментировать, что имена классов по соглашению пишутся с большой буквы.В противном случае вы запутаете других программистов.

...