将 JTextPane 字符串添加到 JComboBox

add JTextPane string to JComboBox

我在这个网站上看过类似的问题,但我似乎无法理解这个概念,所以我必须 post 我自己的问题才能得到适合我的答案。

我正在尝试通过单击 JButton btnAdd 将输入到 JTextField txtAddEng 中的文本添加到 JComboBox engBox 中。

    engBox = new JComboBox();
    engBox.setMaximumRowCount(1000);
    engBox.setModel(new DefaultComboBoxModel(new String[] {"Select an Engagement"}));
    engBox.setBounds(10, 0, 181, 20);       
    sopPanel.add(engBox);

    txtAddEng = new JTextField();
    txtAddEng.setHorizontalAlignment(SwingConstants.CENTER);
    txtAddEng.setToolTipText("Type ENG-#### and click Add");
    txtAddEng.setText("Add an engagement?");
    txtAddEng.setBounds(201, 0, 181, 20);
    sopPanel.add(txtAddEng);
    txtAddEng.setColumns(10);

    JButton btnAdd = new JButton("Add");
    btnAdd.setBounds(383, 3, 51, 17);
    btnAdd.addActionListener(new ActionListener() {
        public void actionPerformed(ActionEvent clickAdd) {
            txtAddEng.toString();
            engBox.add(txtAddEng);
        }
    });
txtAddEng.toString();

该语句没有任何作用。它只是调用 toString() 方法,但从不将其分配给变量。去掉那个语句。

engBox.add(txtAddEng);

您不想将文本字段添加到组合框中。您想要将文本字段中的文本添加到组合框的模型中。

所以代码应该是;

engBox.addItem( txtAddEng.getText() );

阅读 How to Use Combo Boxes 上的 Swing 教程部分,了解更多信息和工作示例。为所有 Swing 基础知识准备一份 link 教程。