добавить строку JTextPane в JComboBox - PullRequest
0 голосов
/ 29 августа 2018

Я смотрел на подобные вопросы на этом сайте, но я не могу понять концепцию, поэтому я должен опубликовать свой собственный вопрос, чтобы получить ответ, специфичный для меня.

Я пытаюсь добавить текст, введенный в JTextField txtAddEng, добавленный в блок JComboBox engBox, нажав кнопку JButton btnAdd.

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

1 Ответ

0 голосов
/ 29 августа 2018
txtAddEng.toString();

Это утверждение ничего не делает. Он просто вызывает метод toString (), но никогда не назначает его переменной. Избавьтесь от этого утверждения.

engBox.add(txtAddEng);

Вы не хотите добавлять текстовое поле в поле со списком. Вы хотите добавить текст в текстовое поле к модели поля со списком.

Так код должен быть;

engBox.addItem( txtAddEng.getText() );

Прочтите раздел из учебника по Swing на Как использовать комбинированные блоки для получения дополнительной информации и рабочих примеров. Держите ссылку на учебник под рукой для всех основ Swing.

...