Evento em jtable!

0 respostas
D

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);
     }
Criado 30 de novembro de 2011
Respostas 0
Participantes 1