繁体   English   中英

为什么我的JOptionPane中的选项被颠倒了?

[英]Why are the options reversed in my JOptionPane?

我正在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有关。 谢谢!

它确实是执行此操作的L&F功能(这不是UI故障)。 我建议不要改变它以获得更好的用户体验。 用户希望应用程序在平台上保持一致。 Windows和Linux用于从左到右显示按钮,而MacOS用于从右到左显示按钮。

看这里两个样本:

视窗:

在此输入图像描述

苹果系统:

在此输入图像描述

了解如何在MacOS上,最重要的按钮显示在最右侧,而在Windows上则相反。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM