簡體   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