如何将MousePressed Eventhandler添加到addItem new JButton

时间:2014-10-24 12:18:58

标签: java swing mouseevent jbutton

addItem = new JButton("Add");
gc.gridwidth = GridBagConstraints.RELATIVE;
gc.weightx = 1.0;
panel.add(addItem, gc);    

我能够做到这样吗:

addEventHandler(MouseEvent.MOUSE_PRESSED, new EventHandler<MouseEvent>() {
            public void handle(MouseEvent me) {

而不是这个我想要那个按钮,但我不知道addItem做了什么,因为它不允许我在那里添加名称。

有没有办法在不修改问题开头给出的4行代码的情况下做到这一点?

2 个答案:

答案 0 :(得分:0)

使用内部类而不是EventHandler的代码。

  addItem.addActionListener(new ActionListener() {
        public void actionPerformed(ActionEvent e) {
            //do something
        }
    });

您可以在java官方网站上获得更多相关信息。
请参阅:http://docs.oracle.com/javase/7/docs/api/java/beans/EventHandler.html

如果只添加鼠标监听器,则在使用键盘时不会出现'press'事件。因此,如果您的要求严格限制在鼠标按下,请使用以下代码段:)

addItem.addMouseListener(new MouseListener() {

            @Override
            public void mouseReleased(MouseEvent e) {
                // do something

            }

            @Override
            public void mousePressed(MouseEvent e) {
                // do something

            }

            @Override
            public void mouseExited(MouseEvent e) {
                // do something

            }

            @Override
            public void mouseEntered(MouseEvent e) {
                // do something

            }

            @Override
            public void mouseClicked(MouseEvent e) {
                // do something

            }

        });

答案 1 :(得分:0)

您可以做的是将ActionListener添加到按钮单击中,或者如果您想要添加MouseListener,实际上它取决于您想要做什么

addItem.addActionListener(new ActtionListener() {...});