2015-10-28 77 views
1

I have asked a question earlier this week.測試程序在Windows環境下的OS X

現在我才明白,對於這種奇怪的行爲的原因其實從一個JFileChooser的佈局不同使用Mac OS X或Windows時造成的。

我的Mac上的窗口如下所示:

OS X Dialog

,而在Windows,它看起來像下面這樣:

Windows Dialog

我的問題是:是否有任何機會,我可以模擬我的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上無法使用。現在我知道很明顯,對話框在不同的操作系統上有不同的構建,我不再想知道,但是線程中的建議解決方案並不適合我。

編輯:更新我的代碼,所以它看起來更好;)

+1

爲什麼不在你的Mac上運行一個虛擬的Windows機器?使用Parallels,VMWare或免費的VirtualBox?只要改變L&F,即使L&F是真實的,仍然會給你Mac路徑(你將無法看到或選擇Mac上不存在的'C:','D:'等東西)。 – RealSkeptic

+0

原來我的代碼在虛擬機上工作,因爲它應該是。它看起來應該在我發佈的最後一個鏈接中。我會收到我詢問的人的反饋意見,看看它現在是否也適用於他們。如果沒有,我可能無法做到這一點。 – Cr0w3

回答