Inserir botão na coluna de uma tabela (JTable)

Bom dia…
Como faço para inserir um botão em uma coluna da minha JTable?

Alguém pode me ajudar?

Valeu :wink:

Você vai ter que colocar a sua JTable com enabled = true e criar seu próprio renderer para ela.

DefaultTableCellRenderer:
http://java.sun.com/j2se/1.4.2/docs/api/javax/swing/table/DefaultTableCellRenderer.html

TableCellRenderer
http://java.sun.com/j2se/1.4.2/docs/api/javax/swing/table/TableCellRenderer.html

Pesquise por esta classe e esta interface, você irá encontrar bastante coisa.

Já estou usando isto, porém tenho dois botões inseridos em colunas diferentes com uma ação para cada um deles.
É nesta parte que está confuso, pois o actionPerformed(ActionEvent e) que eles usam é o mesmo.
Com isso, é complicado trabalhar com os dois botões na mesma ação.

Na verdade queria achar uma forma mais simples de manipular estes botões…

Não sei o que exatamente é mais fácil para você. Mas há, basicamente, duas formas de tratar estes eventos:

  • Utilizando apenas uma implementação de ActionListener, e dentro de ActionPerformed você verifica qual botão gerou o evento, mais ou menos assim:
if(event.getSource().equals(seuBotao)){ //EDIT: event neste caso é o parâmetro passado ao método
//realiza a ação desejada
} else if(event.getSource().equals(seuOutroBotao)){
//realiza a ação desejada
}
  • Implementando um ActionListener para cada botão, o que dispensa as comparações e, na minha opinião, deixa o código mais modular.

Já consegui definir a ação de cada botão.
Mas definir o Label deles está complicado. Eu seto o label de cada um mas mesmo assim ele coloca o mesmo nome para os dois botões.
Esta interface é meio esquisita parece-me!

Agora que não entendi mais nada mesmo :lol:

Você se refere ao texto dos botões?
Está setando um texto para cada um e mesmo assim está exibindo o mesmo?
Já tentou setar o texto já no construtor, assim:

JButton botao = new JButton("Texto do botao");

Se sim, poste o código em que você cria o botão.