本文介绍了JDialog取消按钮的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

如何在 Swing JDialog 中设置取消按钮,即如果用户按下键盘上的取消"键,其动作将自动执行的按钮?

How can I set a cancel button in a Swing JDialog, i.e. a button whose action is performed automatically if the user presses the "Cancel" key on the keyboard?

通过对话框根窗格的 setDefaultButton 方法为默认操作提供对应项.

The counterpart is offered for a default action via the setDefaultButton method of the dialog's root pane.

如果这有帮助,我正在寻找类似于 WinForms Form.CancelButton 属性的内容.

If that's helping, I'm searching for an analogue to the WinForms Form.CancelButton property.

推荐答案

如果不扩展 JDialog,我认为这是不可能的.

I don't think this is possible with JDialog without extending it.

您可以使用 JOptionPane.showOptionDialog()(或可能是其他显示方法之一),传递您想要使用的 JButton.

You could use JOptionPane.showOptionDialog() (or possibly one of the other show methods), passing the JButtons you want to be used.

如果传递的选项是组件,它们将正常呈现,因此您可以执行以下操作:

If the options passed are components, they'll be rendered as normal, so you can do something like this:

int optionType = JOptionPane.DEFAULT_OPTION;
int messageType = JOptionPane.PLAIN_MESSAGE; // no standard icon

JButton ok = new JButton("ok");
JButton cancel = new JButton("cancel");
//add any handlers to the buttons
...
//construct options
Object[] selValues = { ok, cancel };

//show dialog as normal, selected index will be returned.
int res = JOptionPane.showOptionDialog(null, "message",
        "title", optionType, messageType, null, selValues,
        selValues[0]);

这篇关于JDialog取消按钮的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!

09-01 19:06