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 に関係しているような気がします。ありがとう!