在 OS X 上的 Windows 环境中测试程序

Test Program in Windows Environment on OS X

我注意到一些奇怪的行为,这实际上是由于使用 Mac OS X 或 Windows.

时 JFileChooser 布局的差异造成的

在我的 Mac 上 window 看起来像这样:

而在 Windows 上看起来如下所示:

我的问题是:我是否可以在 Mac 上模拟 Windows 外观?因为我没有 Windows 电脑,所以我无法测试任何更改,但总是必须等待其他人来测试它,当然,这很慢,因为它只是参数化的问题。

public DelimiterFileChooser(String[] comboChoices) {
    comboBox = new JComboBox<>();
    comboBox.setModel(new DefaultComboBoxModel<String>(comboChoices));
    JPanel comboPanel = null;
    if (os.indexOf("mac") >= 0 || os.indexOf("nix") >= 0 || os.indexOf("nux") >= 0 || os.indexOf("aix") > 0) {
        comboPanel = (JPanel) this.getComponent(4);
        comboPanel = (JPanel) comboPanel.getComponent(2);
    } else {
        comboPanel = (JPanel) this.getComponent(3);
        comboPanel = (JPanel) comboPanel.getComponent(3);
    }
    Component c1 = comboPanel.getComponent(0);
    Component c2 = comboPanel.getComponent(1);
    comboPanel.removeAll();
    comboPanel.add(getPanel(new JLabel("Use delimiter for .csv:"), comboBox));
    comboPanel.add(c1);
    comboPanel.add(c2);
}

有兴趣的可以看看我的代码。我在 another Stack Overflow thread 中找到了 Windows 部分,最初想知道为什么它在我的 Mac 上不起作用。既然我知道显然在不同的 OS 系统上构建的对话框是不同的,我就不再怀疑了,但是线程中建议的解决方案对我来说并不奏效。

如果您想在 OS-X 机器上 运行 Windows,请尝试 Virtualbox, VmWare Fusion or Parallels。它使 运行ning(多个)Windows 版本在 Mac 上变得容易。测试软件。