我正在OS X Mountain Lion上开发和运行我的Java应用程序,并在自定义对话框中添加了“是”和“否”选项。但是,当我在Windows 7上运行我的应用程序时,我注意到“是”和“否”选项被颠倒了。为了解决这个UI故障,我添加了这段代码:
String msg = "Are you sure you want to cancel the selected bookings?";
String[] options = new String[] { "Yes", "No" };
int noOption = 1;
String os = System.getProperty("os.name").toLowerCase();
if ("mac os x".equals(os)) {
options = new String[] { "No", "Yes" };
noOption = 0;
}
int option =
JOptionPane.showOptionDialog(null, msg, "Confirm Unbooking",
JOptionPane.OK_CANCEL_OPTION, JOptionPane.INFORMATION_MESSAGE, null, options,
options[noOption]);
if (option == noOption) {
return;
}
有人可以告诉我为什么我会遇到我首先描述的问题吗?我觉得它与应用程序的L& F有关。谢谢!
答案 0 :(得分:11)
确实是L& F功能执行此操作(这不是UI故障)。我建议不要改变它以获得更好的用户体验。用户希望应用程序在平台上保持一致。 Windows& Linux用于从左到右显示按钮,而MacOS用于从右到左显示按钮。
见这里有两个样本:
视窗:
的MacOS:
了解如何在MacOS上,最重要的按钮显示在最右侧,而在Windows上则相反。