Tabbed Pane

2 respostas
T

Está acontecendo uma coisa bem estranha com meu tabbed pane!
Eu tenho duas abas dentro dele e cada uma tem dentro dela uma tabela. Para cada linha da tabela tem um Popup menu associado, através do objeto que está na primeira coluna daquela linha.
Em resumo, o que eu faço e capturar um clique de botão direito na tabela e vejo qual linha foi clicada e pego o objeto da tabela pra mostrar o popup certo.

Algo assim:

JTable clickedTable;
          clickedTable = (JTable) e.getComponent();
          int row = clickedTable.rowAtPoint(clickedPoint);
          clickedTable.tree.setSelectionRow(row);
          Node node = (Node)clickedTable.getValueAt(row,0);
          node.getPopupMenu().show(e.getComponent(), e.getX(), e.getY());

Até aí, beleza. O problema é que tem hora que ele pega a tabela que está na aba de baixo, ao inves de pegar da aba que está mostrando.
Alguém sabe como resolver isso?

Valeu!

2 Respostas

S

Isso acontece porque a célula/linha que está selecionada está na outra tabela, pra ti ver como funciona, seleciona a primeira linha da tua JTable e clica com o botão do mouse lá pela décima linha, você verá que os dados capturados são da primeira linha, e não da linha que você clicou com o botão direito. Uma sugestão é criar um mouseListener pra JTable, que quando o botão direito é clicado sobre ela, automaticamente é selecionada a linha para onde o cursor está apontando, ou até cfe. vai movendo o cursor, a seleção das linhas vai acompanhando o mesmo.

T

Não é isso não…

a linha

clickedTable.tree.setSelectionRow(row); faz exatamente isso… é uma longa história pq eu faço assim e não uso direto o método da jtable.

Mas eu fiz uma gambiarra aqui que funcionou… foi só reiniciar uma vez depois a JTable… Vai entender…

Valeu mesmo assim… t+!

Criado 27 de julho de 2006
Ultima resposta 27 de jul. de 2006
Respostas 2
Participantes 2