【发布时间】:2012-03-08 02:13:51
【问题描述】:
我有一个JFrame,上面有三个 JButton。我已将txtSearch(JTextField 组件)设置为在JFrame 加载时获得焦点。其中一个按钮被设置为默认按钮。这是我的代码:
private void formWindowOpened(java.awt.event.WindowEvent evt)
{
// btnRefresh.setMnemonic(KeyEvent.VK_R); // Even if this line
// is not commented, but
// still the event wouldn't fire.
this.getRootPane().setDefaultButton(btnRefresh);
}
当它加载时,按钮只是被选中,但是当按下 Enter 键时它什么也没做。如何正确实现?
btnRefresh.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
btnRefreshActionPerformed(evt);
}
});
private void btnRefreshActionPerformed(java.awt.event.ActionEvent evt) {
JOptionPane.showMessageDialog(this, "Pressed!");
// Other codes here (Replace by JOptionPane)
}
【问题讨论】:
-
我发现最简单的方法是在 JFrame 可见后调用 requestFocusInWindow() 来设置默认按钮。希望这对某人有所帮助。
标签: java swing netbeans default