I have asked a question earlier this week.
现在我开始意识到这种奇怪行为的原因实际上是由于使用Mac OS X或Windows时JFileChooser的布局不同。
在我的Mac上,窗口看起来像这样:
在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系统上构建不同,我不停地想知道,但是线程中建议的解决方案对我来说不起作用。
编辑:更新了我的代码,因此看起来更好;)
答案 0 :(得分:1)
如果您想在OS-X计算机上运行Windows,请尝试Virtualbox,VmWare Fusion或Parallels。它使得在Mac上轻松运行(多个)Windows版本。测试软件。