Mostrar ComboBox em JTable

Olá,

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

[]'s

Tá na mão:

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

[quote=davidtiagoconceicao]Tá na mão:

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

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?

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

[quote=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[/quote]

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?

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

[quote=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.[/quote]

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.

[quote=juliospark][quote=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.[/quote]

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.
[/quote]

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?!

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.

[quote=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.[/quote]

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?

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

[quote=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.[/quote]

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.