我创建了一个简单的jForm登录应用程序。此表单包含两个用于用户名和密码的文本字段以及另一个来自jLabel的自定义按钮。在这个按钮中,我编写了所有事件监听器,如mouseEntered,mouseExited,mousePressed,mouseReleased和mouseClicked。当用户在输入密码后点击进入时,我需要触发此mouseClicked事件。
我该怎么做?
P.S。我使用过Robot类似乎不是一个合适的解决方案。
答案 0 :(得分:2)
为避免出现JButton
,你会遇到很多麻烦。相反,请使用JButton
并调用setBorderPainted(false)
以获得JLabel
的外观。然后,您可以调用setDefaultButton()
,并且当根窗格中出现UI定义的激活事件(通常是 Enter 键)时,将激活按钮“,无论该按钮是否具有键盘焦点。“
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);