Как убрать пробелы в jComboBox - PullRequest
0 голосов
/ 12 ноября 2018

Я пытаюсь создать jComboBox, содержащий названия книг, и когда я нажимаю кнопку «одолжить книгу», эта книга больше не появляется. Я смог заставить все это работать, но когда я «одалживаю книгу», там было пустое место, где она находилась. Это код, который я попробовал:

    private void cargarLibros()
    {
        String[] libros = new String[this.librosDisponibles()]; //librosDisponibles() returns the amount of books available
        for(int i=0; i<this.librosDisponibles(); i++)
        {
            if(!(this.getBiblioteca().getLibros().get(i).prestado()))
            {
                libros[i] = this.getBiblioteca().getLibros().get(i).getTitulo(); //get the titles
            }
        }
    jComboBox3.removeAll();
    DefaultComboBoxModel modelo = new DefaultComboBoxModel(libros);
    this.jComboBox3.setModel(modelo);
}

А также попробовал это:

    private void cargarLibros()
    {
        String[] libros = new String[this.librosDisponibles()];
        for(int i=0; i<this.librosDisponibles(); i++)
        {
            if(!(this.getBiblioteca().getLibros().get(i).prestado()))
            {
                libros[i] = this.getBiblioteca().getLibros().get(i).getTitulo();
            }
        }
        DefaultComboBoxModel modelo = (DefaultComboBoxModel)jComboBox3.getModel();
        modelo.removeAllElements();
        for(String libro : libros)
        {
            modelo.addElement(libro);
        }
        jComboBox3.setModel(modelo);
}

С обоими из них я получаю следующие результаты:

Выбор книги

Заимствованная книга

1 Ответ

0 голосов
/ 12 ноября 2018

и когда я нажимаю кнопку «одолжить книгу», эта книга больше не появляется.

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

Таким образом, код в вашем ActionListener поля со списком будет выглядеть примерно так:

JComboBox comboBox = (JComboBox)e.getSource();
DefaultComboBoxModel model = (DefaultComboBoxModel)comboBox.getModel();
Object item = comboBox.getSelectedItem();
model.removeElement( item );
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...