1

在许多本机 OS X 应用程序中,有一些对话框具有初始设置的默认选项(蓝色)和不同的选项(轮廓蓝色)。这允许用户分别使用 enter 和 space 在两个不同的常用选项之间进行选择。

OS X 中的 3 个选项对话框,带有焦点选项、非焦点选项和默认选项

我希望能够在 java 应用程序中复制它。以下列方式使用 JOptionPane 会产生接近的结果,但默认选项(作为initialValue参数提供)既是焦点选项是默认选项;蓝色轮廓(以及通过空格键激活的按钮)应该在最左边的按钮上,但它不是。

int showOptionPane(JFrame parent, String file) {
    String[] selections = {"Save", "Cancel", "Don't Save"};
    return JOptionPane.showOptionDialog(parent,
            "Do you want to save changes to: " + file + "?",
            "Save Work?",
            JOptionPane.YES_NO_CANCEL_OPTION,
            JOptionPane.PLAIN_MESSAGE,
            null, selections, selections[0]);
}

OS X 中的 3 个选项对话框,其中包含两个未聚焦的选项,以及一个默认的聚焦选项

我已经尝试拉出源代码,JOptionPane.showOptionDialog以尝试调整向用户显示时哪个按钮获得焦点,但是我在获取按钮本身时遇到了麻烦(因为我认为这些是在可插入外观和感觉中指定的)。如何获得与默认按钮不同的焦点按钮?

4

0 回答 0