有没有办法确定确定/取消按钮的正确顺序?

Is there a way to determine the correct order of Okay / Cancel buttons?

我们有一个 Swing 应用程序,其中包含许多具有确定和取消按钮的输入对话框。

我注意到在 JOptionPane 中,确定和取消按钮的顺序因平台而异。在 Windows 上是 okay/cancel 而在 Unix 上是 cancel/okay.

在我们添加了自己的确定和取消按钮的地方,我希望它们的顺序与它们在 JOptionPane 中显示的顺序一致,以保持一致性。

我想知道是否有办法询问 UIManager 以找出当前外观或平台的正确顺序。

提前致谢。 马特

你可以使用这个:

Object[] options = { "OK", "CANCEL" };
JOptionPane.showOptionDialog(null, "Click OK to continue", "Warning",
JOptionPane.DEFAULT_OPTION, JOptionPane.WARNING_MESSAGE,
null, options, options[0]);

是的,只是不是您所期望的那样。 您必须设计自己的 OptionPane class。而且您必须从 JOptionPane 扩展。这样您就可以设计按钮的放置位置。 我个人建议搜索其他解决方案。

JOptionPane 中按钮的顺序由

控制
boolean isYesLast = UIManager.getDefaults().getBoolean("OptionPane.isYesLast");

如果 isYesLast 为真,则按钮顺序颠倒(例如 yes/no/cancel -> cancel/no/yes)