我想通过按键盘上的“enter”键来关闭 JDialog。我怎样才能做到这一点?谢谢你! 笔记: 我想做到这一点,不涉及任何按钮。 谢谢!
最佳答案
一种方法:
- 你可以给它一个关闭的 JButton
- 其 ActionListener 具有关闭对话框的代码,
- 并将该按钮设为对话框根 Pane 的默认按钮。
例如,
myDialog.getRootPane().setDefaultButton(exitButton);
<小时/>
选项二:
- 使用按键绑定(bind)将 Enter 键绑定(bind)到 AbstractAction 中的退出代码。
例如,
import java.awt.Dimension;
import java.awt.event.ActionEvent;
import java.awt.event.KeyEvent;
import javax.swing.*;
public class DemoDialog {
public static void main(String[] args) {
JFrame frame = new JFrame("Frame");
frame.add(Box.createRigidArea(new Dimension(400, 300)));
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.pack();
frame.setLocationRelativeTo(null);
frame.setVisible(true);
final JDialog dialog = new JDialog(frame, "Dialog", true);
// set binding
int condition = JPanel.WHEN_IN_FOCUSED_WINDOW;
InputMap inputMap = ((JPanel) dialog.getContentPane()).getInputMap(condition);
ActionMap actionMap = ((JPanel) dialog.getContentPane()).getActionMap();
String enter = "enter";
inputMap.put(KeyStroke.getKeyStroke(KeyEvent.VK_ENTER, 0), enter);
actionMap.put(enter, new AbstractAction() {
@Override
public void actionPerformed(ActionEvent e) {
dialog.dispose();
}
});
dialog.add(Box.createRigidArea(new Dimension(200, 200)));
dialog.pack();
dialog.setLocationRelativeTo(frame);
dialog.setVisible(true);
}
}
关于java - 通过敲击键盘上的 "enter"关闭 JDialog,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22325640/