2014-09-02 53 views
0

我已經設計了Netbeans中的一個JFrame,如下所示的圖像:JComboBox的意外行爲

http://tinypic.com/r/2em2wxd/8

當我運行該程序,組合框變爲全白瞭如下圖所示的圖像:

http://tinypic.com/r/2vblwuf/8

和..當我點擊了「白」的空間就說明可以選擇組合框內部的項目(S)..但即使選擇後,它仍然是不顯示相同的白色空間佈局贊成perly和選定的項目。

我的代碼如下:

public class LoginWindow extends javax.swing.JFrame { 

/** 
* Creates new form LoginWindow 
*/ 
public LoginWindow() { 
    initComponents(); 
    setLocationRelativeTo(null); 

    new MyWorker().execute(); 
} 
.......... 

,工人類如下:

class MyWorker extends javax.swing.SwingWorker<String, Void> { 

    protected String doInBackground() { 
     databaseCheck(); 
     return "done"; 
    } 

    protected void done() { 
     progressPanel.setVisible(false); 
     loginPasswordField.setEnabled(true); 
     locationComboBox.setEnabled(true); 
     loginButton.setEnabled(true); 
     loginPasswordField.requestFocusInWindow(); 
    } 
} 

必須指出的是,這種行爲大多是經驗豐富的,雖然有時它工作得很好(很少)...任何幫助將不勝感激。

+3

你可以發佈[SSCCE](http://sscce.org)嗎? – 2014-09-02 18:29:28

+2

SSCCE也被稱爲[MCVE](http://stackoverflow.com/help/mcve),它受限於最小示例(您可以提供的代碼越少),但仍會重現錯誤,它必須是完整的代碼,因此我們可以複製粘貼並在計算機上看到它,並且能夠更好地幫助您。 – Frakcool 2014-09-02 18:32:12

+0

@Frakcool修復它..謝謝你的時間。 – HMH 2014-09-02 18:54:07

回答

2

我剛似乎已經固定它,而試圖發佈一個SSCCE ..在框架上

實際元件尺寸可見是[256,29] ..而首選大小是不同的,其似乎已經引起了問題。

locationComboBox.setPreferredSize(new java.awt.Dimension(256, 29)); 

這解決了這個問題。

+3

我建議你閱讀[關於使用set vs獲取最小/首選/最大大小的這個問題](http://stackoverflow.com/questions/7229226/should-i-avoid-the-use-of-setpreferredmaximumminimumsize-methods -in-java-swi/7229519#7229519)以及'setMinimumSize'和'setPreferredSize'的答案。當然,這就是爲什麼我們要求一個MCVE,試圖解決任何事情時,如果你把它帶到基礎知識,然後有時你自己去找答案。在下一次考慮之前請考慮:) – Frakcool 2014-09-02 18:57:12

+0

哦,不要忘了檢查你的答案是否接受(當系統允許你的時候,如果我沒有錯的話會在2天內)。如果你使用多個'JFrames',你還應該閱讀[使用多個JFrames,好/壞實踐](http://stackoverflow.com/questions/9554636/the-use-of-multiple-jframes -good-bad-practice/9554657#9554657) – Frakcool 2014-09-02 18:58:22

+0

謝謝你的鏈接。我肯定會對佈局管理器進行更多調查,並在我的應用程序中實現它,因爲我已經注意到組件在不同平臺上具有大小問題。但是我想知道爲什麼如果GUI構建器將組件顯示爲I使它和應用程序運行時,它可能會導致意外的問題/自我調整大小根據默認的minimumSize/preferredSize值,我沒有設置在第一個地方..哈哈!是的,我曾經使用多個JFrames,但現在我在閱讀完該鏈接後更改了所有應用程序:P – HMH 2014-09-02 19:06:27