Problema com mouseListener

1 resposta
FabricioPJ

Olá a todos.

Estou implementando um evento mouseListener em uma JTable, para que quando eu clicar em uma célula, seja exibida uma mensagem. Até ai tudo bem, o problema é que na primeira vez funciona, mas se eu clicar em uma segunda célula, a mensagem é exibida 2 vezes, se eu clicar em mais uma célula, a mensagem é exibida 3 vezes e assim por diante. Tanto no mousePressed quanto no mouseClicked isso ocorre. Segue abaixo o código:

public class CellEditor extends AbstractCellEditor implements TableCellEditor{
        JComponent componente = new JTextField();
        int linha;
        int coluna;

        public CellEditor(final JTable tabela){
            componente.addFocusListener(
                    new FocusListener(){
                        //======================================================
                        //                  FOCUSGAINED
                        //======================================================
                        public void focusGained(FocusEvent e){
                            final int linha = tabela.getSelectedRow();
                            final int coluna = tabela.getSelectedColumn();
                            lblLinhaAtual.setText("Linha atual:             " + linha);
                            lblColunaAtual.setText("Coluna atual:           " + coluna);

                            ((JTextField)componente).selectAll();
                            componente.addMouseListener(new MouseListener(){

                                public void mouseClicked(MouseEvent e) {
                                    
                                }

                                public void mousePressed(MouseEvent e) {
                                    JOptionPane.showMessageDialog(null, "Clicou");
                                }

                                public void mouseReleased(MouseEvent e) {

                                }

                                public void mouseEntered(MouseEvent e) {

                                }

                                public void mouseExited(MouseEvent e) {

                                }

                            }); //Fim mouseListener


                                   ... Mais códigos...

Onde estou a errar?

Agradeço a atenção de todos.

1 Resposta

dionat4n

O MouseListener precisa estar dentro do FocusListener?

Criado 27 de maio de 2009
Ultima resposta 27 de mai. de 2009
Respostas 1
Participantes 2