我想在JOptionPane上按下“OK”按钮时捕获ok按钮事件。然后我想显示一个jframe。我发现了许多关于捕获除JOptionPane之外的各种事件的教程和视频。 Java文档对新手没什么帮助。希望有人可以提供帮助。我有以下内容。
JOptionPane.showMessageDialog(frame,
"Press OK to get a frame");
如何实现侦听器以捕获OK按下的事件。
private class Listener implements ActionListener {
public void
actionPerformed(ActionEvent e) {
}
}
答案 0 :(得分:3)
无需捕获它 - 代码流将立即返回JOptionPane
显示行。如果你想知道OK vs cancel vs delete是否按下了窗口,那么使用不同的JOptionPane
- 使用JOptionPane.showConfirmDialog(...)
,并捕获从此方法调用返回的结果。
String text = "Press OK to get a frame";
String title = "Show Frame";
int optionType = JOptionPane.OK_CANCEL_OPTION;
int result = JOptionPane.showConfirmDialog(null, text, title, optionType);
if (result == JOptionPane.OK_OPTION) {
//...
}
答案 1 :(得分:3)
您无法使用showMessageDialog
方法执行此操作。您必须使用showConfirmDialog
方法。这将返回一个值,您可以在该值上确定按下的按钮:
int result = JOptionPane.showConfirmDialog(frame, "Press OK to get a frame");
if (result == JOptionPane.YES_OPTION) {
// Yes button was pressed
} else if (result == JOptionPane.NO_OPTION) {
// No button was pressed
}
要获得确定按钮,您需要使用OK_CANCEL_OPTION
:
int result = JOptionPane.showConfirmDialog(frame, "Press OK to get a frame",
"Title", JOptionPane.OK_CANCEL_OPTION);
if (result == JOptionPane.OK_OPTION) {
// OK button was pressd
} else if (result == JOptionPane.CANCEL_OPTION) {
// Cancel button was pressed
}