JCombobox出乎意料的行为

时间:2014-09-02 18:25:41

标签: java swing jcombobox

我在Netbeans中设计了一个JFrame,如下图所示:

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

当我运行程序时,组合框全部变为白色,如下图所示:

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

并且..当我点击“白色”空间时,它会显示组合框中可以选择的项目..但即使选择后,它仍然是相同的空白区域,没有正确显示布局和选定的项目。

我的代码如下:

public class LoginWindow extends javax.swing.JFrame {

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

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

Worker类如下:

    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();
    }
}

必须注意的是,这种行为主要是经历过的,虽然有时它工作得很好(很少)......任何帮助都会受到赞赏。

1 个答案:

答案 0 :(得分:2)

我似乎在试图发布SSCCE时修复了它。

框架上可见的实际组件大小是[256,29] ..而preferredSize是不同的,这似乎导致了问题。

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

这解决了问题。