Mostrar ComboBox em JTable

11 respostas
J

Olá,

Alguem sabe como fazer para que uma JTable mostre que determinada COLUNA possui um COMBOBOX?

[]'s

11 Respostas

D

Tá na mão:

http://java.sun.com/docs/books/tutorial/uiswing/components/table.html#combobox

J

davidtiagoconceicao:
Tá na mão:

http://java.sun.com/docs/books/tutorial/uiswing/components/table.html#combobox

Olá David,

Obrigado, já havia visto este link, porem se você executar a Table não mostra qual das colunas é COMBOBOX, somente aparece quando você clica na célula.

Preciso que ao carregar a tabela, mostra que a célula X possui um COMBOBOX.

Sabe como fazer isso?

D

Neste caso, você vai precisar criar um renderer e criar um comboBox para a determinada coluna. Nesta mesma página que te passei há um exemplo disto:
http://java.sun.com/docs/books/tutorial/uiswing/components/table.html#renderer

J

davidtiagoconceicao:
Neste caso, você vai precisar criar um renderer e criar um comboBox para a determinada coluna. Nesta mesma página que te passei há um exemplo disto:
http://java.sun.com/docs/books/tutorial/uiswing/components/table.html#renderer

David,

Já tenho criado o Renderer e o ComboBox. Porem não consigo fazer com que ele “apareça”.

Sabe o que devo fazer com o Renderer?

D

Não estou entendendo.
Você quer que o combo liste as opções, é isso? Se não for, por favor descreva melhor o problema.

J

davidtiagoconceicao:
Não estou entendendo.
Você quer que o combo liste as opções, é isso? Se não for, por favor descreva melhor o problema.

Eu quero o seguinte:

A Table é preenchida com linhas e colunas, mas não mostra qual célula possui uma ComboBox.
Para ver se o campo é ComboBox ou não, preciso clicar nele. Ai sim, aparece a combo.

Gostaria que ao carregar, já estivesse aparecendo que a Coluna x possui ComboBox em todas as suas linhas.
Que as ComboBox já estivessem ‘ativas’ e não descobrir célula pôr célula o que é editável ou não.

D

juliospark:
davidtiagoconceicao:
Não estou entendendo.
Você quer que o combo liste as opções, é isso? Se não for, por favor descreva melhor o problema.

Eu quero o seguinte:

A Table é preenchida com linhas e colunas, mas não mostra qual célula possui uma ComboBox.
Para ver se o campo é ComboBox ou não, preciso clicar nele. Ai sim, aparece a combo.

Gostaria que ao carregar, já estivesse aparecendo que a Coluna x possui ComboBox em todas as suas linhas.
Que as ComboBox já estivessem ‘ativas’ e não descobrir célula pôr célula o que é editável ou não.

Aaahn tah!
:stuck_out_tongue:
Ok, acredito que você possa fazer isso usando o renderer mesmo.
Você criou um renderer que gera um componente do tipo JComboBox?!
Associou este renderer à classe da coluna que você quer?!

V

Não basta perguntar o seu model qual das colunas retorna um Boolean.class???

Agora para mostrar um combo no JTable, basta fazer o model retornar Boolean.class na coluna desejada. A tabela exibirá um combo para cada linha, mesmo que nunca tenha sido clicada. Qualquer comportamento diferente disso é estranho.

J

ViniGodoy:
Não basta perguntar o seu model qual das colunas retorna um Boolean.class???

Agora para mostrar um combo no JTable, basta fazer o model retornar Boolean.class na coluna desejada. A tabela exibirá um combo para cada linha, mesmo que nunca tenha sido clicada. Qualquer comportamento diferente disso é estranho.

Olá ViniGodoy,

Fiz o seguinte:

public Class<?> getColumnClass(int column) {
            if (column == 4){
                return Boolean.class;
            }
            return super.getColumnClass(column);
        }

Porem minha Table apareceu no lugar das ComboBox, CheckBox :shock:

Qual outro lugar que devo fazer alguma alteração?

V

Putz, foi mal, tava pensando em checkbox. Viajei na maionese.
Aí só fazendo um renderer e um editor, como falou o nosso amigo ali.

J

ViniGodoy:
Putz, foi mal, tava pensando em checkbox. Viajei na maionese.
Aí só fazendo um renderer e um editor, como falou o nosso amigo ali.

Olá ViniGodoy,

Tem como postar um exemplo de como ficaria?
Estou usando AbstractTableModel e TableCellRenderer.
Mas não sei exatamente em qual momento e qual implementação devo fazer.

Criado 2 de março de 2009
Ultima resposta 3 de mar. de 2009
Respostas 11
Participantes 3