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



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



并且..当我单击“白色”空格时,它会显示可以选择的组合框内的项目。但是即使选择后,它仍然是相同的空白,无法正确显示布局和所选项目。

我的代码如下:

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


必须指出的是,这种行为通常是有经验的,尽管有时它工作得很好(非常罕见)……任何帮助将不胜感激。

最佳答案

我似乎在尝试发布SSCCE时已修复它。

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

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


这解决了问题。

关于java - JCombobox意外行为,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/25629897/

10-09 18:16
查看更多