Pergunta

Eu quero adicionar combosbox em uma célula de jtable.

model=new DefaultTableModel(data,col);
JTableHeader head=new JTableHeader();
head.setBackground(Color.BLUE);
table=new JTable(model);
table.add(head);
JComboBox combo = new JComboBox();
combo.addItem("Names");
combo.addItem("Antony");
combo.addItem("Victor");
combo.addItem("Ramkumar");
table.add(combo);

Mas eu não posso colocar o ComboBox na célula. É possível definir a caixa de combinação?

Foi útil?

Solução

Você precisa definir o tableleditor do JTable. É melhor pesquisar nos tutoriais do Java, mas aqui está uma explicação curta.

O JTABLE usa três classes principais para funcionar:

1) TABLERMODEL: A função é dizer quantas linhas e colunas a tabela possui e, para servir os dados da tabela, seus principais métodos são GetValue (linha, Col) e SetValue (Valor, Row, Col). E eventos de incêndio para notificar as replações jtable.

2) TableCellRenderer: é o principal objetivo que é desenhar componentes nas células do JTable. Esses componentes são pintados apenas: não funcionam! Se você desenhar um JCOMBOBOX, ele não será desplevado se você clicar nele ou se você desenhar um JCHECKBOX, não seleção/não seleciona.

3) TableCellEditor: é o principal objetivo que é desenhar um componente dentro de um jtableCell para editar o valor da célula. Ele recebe eventos e decide quando iniciar a edição, é o método GettableCellEditorComponent é chamado para retornar o componente do editor. O componente retornado deve iniciar eventos para que o tableleditor saiba quando interromper a edição e obter o valor e usá -lo para chamar o theblemodel.setValue ... ou cancelar a edição.

Para que para mostrar o JCOMBOBOX em um jtable, você deve criar seu próprio tabelleditor, não é uma tarefa fácil se você nunca o fez antes.

Outras dicas

Dê uma olhada nesteJava Tutorial e pesquise nesta página para "usar uma caixa de combinação como editor"

Tente:

    .
  1. passo a passo Excluir algumas definições de bloco da definição de lista para descobrir o que exatamente não funciona.
  2. outra recomendação, não use lacunas na propriedade Name da definição de campo, ele será alterado em algo como _x2000, pode ser erro com a FielDref de conexão do tipo de conteúdo.
  3. no Fieldref tente usar apenas propriedades necessárias como identificação, nome ou showid * ... Propriedades como displayName serão copiadas de qualquer maneira ..
  4. Se você tentou criar sua lista através da interface e funcionou, tente abrir a definição de lista criada através do SharePoint Manager e identificar diferenças.
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top