Olá galera, tenho uma jtable com 10 linhas e 10 colunas e gostaria de saber como pegar o valor de apenas uma célula através do pressionamento da tecla ENTER. E também, como faria para pegar esse valor e armazená-lo em uma variável e depois no próximo enter armazenar o próximo valor em outra variável… deu pra entender?
Eu estou até conseguindo fazer isso, mas tem um problema… não consigo acessar o segundo valor pressionado pois está dentro do método actionPerformed. Na verdade quero pegar os valores de valorCelula1 e valorCelula2 e passar como parametro para um método multiplicacao(). Alguma ideia galera.
Obrigado!
public void iniciarJogadas(){
InputMap im = tabelaTabuleiro.getInputMap(JTable.WHEN_ANCESTOR_OF_FOCUSED_COMPONENT);
KeyStroke enter = KeyStroke.getKeyStroke("ENTER");
im.put(enter, im.get(KeyStroke.getKeyStroke(KeyEvent.VK_GREATER, 0)));
AbstractAction enterAction = new AbstractAction()
{
public void actionPerformed(ActionEvent e)
{
int linhaSel = tabelaTabuleiro.getSelectedRow();
int colunaSel = tabelaTabuleiro.getSelectedColumn();
Object valorCelula1 = tabelaTabuleiro.getValueAt(linhaSel, colunaSel);
JOptionPane.showMessageDialog(null, "Numero1: " + valorCelula1);
lerOutraJogada(valorCelula1);
}
};
tabelaTabuleiro.getActionMap().put(im.get(enter), enterAction);
}
public void lerOutraJogada(Object valor1){
InputMap im = tabelaTabuleiro.getInputMap(JTable.WHEN_ANCESTOR_OF_FOCUSED_COMPONENT);
KeyStroke enter = KeyStroke.getKeyStroke("ENTER");
im.put(enter, im.get(KeyStroke.getKeyStroke(KeyEvent.VK_GREATER, 0)));
AbstractAction enterAction = new AbstractAction()
{
public void actionPerformed(ActionEvent e)
{
int linhaSel = tabelaTabuleiro.getSelectedRow();
int colunaSel = tabelaTabuleiro.getSelectedColumn();
Object valorCelula2 = tabelaTabuleiro.getValueAt(linhaSel, colunaSel);
JOptionPane.showMessageDialog(null, "Numero2: " + valorCelula2);
iniciarJogadas();
}
};
tabelaTabuleiro.getActionMap().put(im.get(enter), enterAction);
}