JCombox 的 DropDown 未显示

DropDown of JCombox is not shown

我有一个JComboBox,就是这样生成的

private JComboBox generateComboBox() {

    JComboBox ddl = new JComboBox();
    ArrayList<String> items = null;
    if(this.editable)
        items = (ArrayList<String>) Registry.getListEditable();
    else
        items = (ArrayList<String>)  Registry.getListNotEditable;
    for(String s:items)
        ddl.addItem(s);
    return ddl;
}

此 ComboBox 使用此处的代码显示在 JFrame 上:

        GridBagConstraints constraints = new GridBagConstraints();
        constraints.gridheight = 3;
        constraints.gridwidth = 1;
        constraints.gridx = 0;
        constraints.gridy = 0;
        this.getRootPane().add(ddl_schemes,constraints);

问题是,"dropdown" 功能不可见。 ComboBox 包含值,我可以使用键盘上的箭头键 select 这些值,但我看不到列表。

有什么建议吗?

谢谢!

这行得通。所以你的问题可能在任何其他时候。 Post 更多代码或完整示例。 为什么要将所有内容添加到 rootpane?将其添加到 内容窗格

更多信息:http://docs.oracle.com/javase/tutorial/uiswing/components/rootpane.html

package testing;

import java.awt.GridBagConstraints;
import java.awt.GridBagLayout;
import java.util.Arrays;
import java.util.List;
import javax.swing.JComboBox;
import javax.swing.JFrame;

public class JComboBoxMaster extends JFrame {

  private JComboBox generateComboBox() {
    JComboBox ddl = new JComboBox();
    List<String> items = Arrays.asList("one", "two", "three");

    for (String s : items) {
      ddl.addItem(s);
    }

    return ddl;
  }

  public static void main(String[] args) {
    JComboBoxMaster jcbm = new JComboBoxMaster();
    jcbm.setLayout(new GridBagLayout());
    jcbm.setDefaultCloseOperation(EXIT_ON_CLOSE);

    GridBagConstraints constraints = new GridBagConstraints();
    constraints.gridheight = 3;
    constraints.gridwidth = 1;
    constraints.gridx = 0;
    constraints.gridy = 0;
    JComboBox test = jcbm.generateComboBox();
    jcbm.getContentPane().add(test, constraints);

    jcbm.pack();
    jcbm.setVisible(true);

// This works
    test.addItem("four");

  }
}