Another solution would be to use the comboModel. Simple example:
public class AulaComboModel extends AbstractListModel<Aula> implements ComboBoxModel<Aula> {
private List<Aula> lista;
/* Seleciona um objeto na caixa de seleção */
private Aula selecionado;
/* Método construtor */
public AulaComboModel() {
/* Popula a lista */
popular();
/* Define o objeto selecionado */
setSelectedItem(lista.get(0));
}
/* Captura o tamanho da listagem */
public int getSize() {
int totalElementos = lista.size();
return totalElementos;
}
/* Captura um elemento da lista em uma posição informada */
public Aula getElementAt(int indice) {
Aula t = lista.get(indice);
return t;
}
/* Marca um objeto na lista como selecionado */
public void setSelectedItem(Object item) {
selecionado = (Aula) item;
}
/* Captura o objeto selecionado da lista */
public Object getSelectedItem() {
return selecionado;
}
private void popular() {
try {
/* Cria o DAO */
AulaDAO tdao = new AulaDAO();
/* Cria um modelo vazio */
Aula t = new Aula();
t.setNomeUsuario("");
/* Recupera os registros da tabela */
lista = tdao.buscar(t);
/* Cria o primeiro registro da lista */
Aula primeiro = new Aula();
primeiro.setIdUsuario(0);
primeiro.setNomeUsuario("--SELECIONE UM USUARIO--");
/* Adiciona o primeiro registro a lista */
lista.add(0, primeiro);
} catch (Exception ex) {
ex.printStackTrace();
}
}
}
In that comboModel
I retrieve the bank records as follows: lista = tdao.buscar(t);
To implement this comboModel you need to override the method equals
and the toString
Do this on the model, example:
@Override
public String toString() {
String texto = idUsuario+" - "+ nomeUsuario;
return texto;
}
@Override
public boolean equals(Object obj) {
Aula f = (Aula) obj;
return Objects.equals(this.idUsuario, f.idUsuario);
}
Note that in the toString
i am concatenating id and name.
If using netbeans go to comboModel component, right-click and go to properties > model > custom code and then install the model created: new AulaComboModel()
This would be a somewhat "bigger" solution to your problem, but the use of comboModel
can facilitate and make your code more organized.
What have you tried to do? Add to question.
– user28595
How do you get these values? You want to display only one or several values?
– DiegoAugusto
I receive the values of the database and create an arrayList of categories, I would like to display this list
– Paulo Henrique