java - JComboBox 未出现在窗口中

标签 java swing layout jcombobox

private String stringComboBoxElement[] = {"Roll", "SetCode", "Answers", "Others"};

contentPane = new JPanel();

contentPane.setLayout(null);

comboBoxfields = new JComboBox(stringComboBoxElement);

    comboBoxfields.setBounds(180, 50, 120, 30);
    comboBoxfields.setFont(new Font("sansserif", Font.TRUETYPE_FONT | Font.PLAIN, 15));
    comboBoxfields.setBorder(new SoftBevelBorder(BevelBorder.LOWERED));

    if(stringComboBoxElement.length > 5)
        comboBoxfields.setMaximumRowCount(5);
    else
        comboBoxfields.setMaximumRowCount(stringComboBoxElement.length);

    comboBoxfields.addItemListener(new ItemListener() {

        @Override
        public void itemStateChanged(ItemEvent e) {
            if(e.getStateChange() == ItemEvent.SELECTED)
                textFieldName.setText((String) e.getItem());
        }
    });
    contentPane.add(comboBoxfields);

我做了所有事情,但 JComboBox 没有出现在窗口中。有什么问题以及如何解决它?无法上传完整代码。问题就出在这里,没有它一切都工作正常。有人可以帮我吗?

最佳答案

以下代码对我有用:

import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import javax.swing.border.*;

public class Example {
    private static final String COMBO_BOX_ELEMENTS[] = {"Roll", "SetCode", "Answers", "Others"};

    public static void main(String[] args) {
      JFrame window = new JFrame("Example");

      JPanel contentPane = new JPanel();

      contentPane.setLayout(new GridBagLayout());

      final JComboBox comboBoxfields = new JComboBox(COMBO_BOX_ELEMENTS);

      comboBoxfields.setFont(new Font("sansserif", Font.TRUETYPE_FONT | Font.PLAIN, 15));
      comboBoxfields.setBorder(new SoftBevelBorder(BevelBorder.LOWERED));

      comboBoxfields.setMaximumRowCount(5);

      comboBoxfields.addActionListener(new ActionListener() {
          public void actionPerformed(ActionEvent actionEvent) {
                System.out.println(
                    "'"  + comboBoxfields.getSelectedItem().toString() + "'"
                    + " was selected");
          }
      });

      contentPane.add(comboBoxfields);

      window.add(contentPane); // I guess this is what you need to do.
      window.setSize(500, 500);
      window.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
      window.setVisible(true);
    }
}

正如 @nachokk 所提到的,您需要将 contentPane 添加到 JFrame

关于java - JComboBox 未出现在窗口中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22581558/

相关文章:

html - HTML 中灵活的页眉、可滚动正文和页脚

javascript - Primefaces js 无法在 p :layout 内工作

java - 是否可以根据某些过滤器将内容从一个通量插入到另一个通量中

java - 选择何时实例化类

Java Swing组件让人耳目一新

java - 无法引用内部类中的变量

java - 为什么下面的代码会遇到 IOException?

java - (Node.js、socket.io)JSONObject 无法转换为 int

java - 具有 miglayout 和嵌套面板的 Swing 布局

c++ - 从 exe 的 .data 和 .rdata 读取值。字节对齐