从密码字段触发jLabel鼠标事件"输入" keypressed(自定义按钮)

时间:2016-06-15 08:28:14

标签: java swing netbeans mouseevent

我创建了一个简单的jForm登录应用程序。此表单包含两个用于用户名和密码的文本字段以及另一个来自jLabel的自定义按钮。在这个按钮中,我编写了所有事件监听器,如mouseEntered,mouseExited,mousePressed,mouseReleased和mouseClicked。当用户在输入密码后点击进入时,我需要触发此mouseClicked事件。

我该怎么做?

P.S。我使用过Robot类似乎不是一个合适的解决方案。

1 个答案:

答案 0 :(得分:2)

为避免出现JButton,你会遇到很多麻烦。相反,请使用JButton并调用setBorderPainted(false)以获得JLabel的外观。然后,您可以调用setDefaultButton(),并且当根窗格中出现UI定义的激活事件(通常是 Enter 键)时,将激活按钮“,无论该按钮是否具有键盘焦点。“

image

JFrame f = new JFrame("ButtonTest");
f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
JButton b = new JButton(new AbstractAction("Login") {

    @Override
    public void actionPerformed(ActionEvent e) {
        System.out.println(e);
    }
});
b.setBorderPainted(false);
f.getRootPane().setDefaultButton(b);
f.add(b);
f.pack();
f.setLocationRelativeTo(null);
f.setVisible(true);
相关问题