Olá galera,
Seguinte, tenho uma tabela, onde cada célula representa um ramal. Desejo com o click do botão esquerdo do mouse pegar o “ramal de origem” e com o click do botão direito do mouse pegar o “ramal de destino”. Esses valores (ramal de origem e destino) eu guardo em um array estático. O problema que está ocorrendo é que com
e.getButton() == e.BUTTON1 e e.getButton() == e.BUTTON3 ele pega os mesmos valores. Curioso que que eu colocar e.getButton() == e.BUTTON1 e e.getButton() == e.BUTTON1 também, ele pega os valores corretos.
jTable.addMouseListener(new MouseAdapter() {
public void mouseClicked(MouseEvent e) {
// Ramal de Origem
if (e.getButton() == e.BUTTON1) {
// Liberando a posição do buffer
ListaGruposRamaisForm.bufferRamais[0] = "";
// Pegando a posição na tabela do ramal
int col = jTable.getSelectedColumn();
int row = jTable.getSelectedRow();
// Pegando o valor desse ramal
Object ramalOrig = tableModel.getValueAt(row, col);
// Pegando apenas o número do ramal
ListaGruposRamaisForm.bufferRamais[0] = ramalOrig.toString().substring(14, 18);
}
// Ramal de Destino
if (e.getButton() == e.BUTTON3) {
// Liberando a posição do buffer
ListaGruposRamaisForm.bufferRamais[1] = "";
// Pegando a posição na tabela do ramal
int col = jTable.getSelectedColumn();
int row = jTable.getSelectedRow();
// Pegando o valor desse ramal
Object ramalDest = tableModel.getValueAt(row, col);
// Pegando apenas o número do ramal
ListaGruposRamaisForm.bufferRamais[1] = ramalDest.toString().substring(14, 18);
System.out.println("Discando de: " + ListaGruposRamaisForm.bufferRamais[0] +
" Para: " + ListaGruposRamaisForm.bufferRamais[1]);
}
}
});