Я не могу определить количество кликов = 2 (двойной щелчок) в моем проекте Java - PullRequest
0 голосов
/ 15 сентября 2018

Я пытаюсь прослушать двойной щелчок на jtable, но слушатель мыши получает только количество щелчков = 1.

JTable replacedAssets = new JTable(...);
replacedAssets.addMouseListener ( new MouseAdapter ( ) {
        @Override
        public void mouseClicked ( MouseEvent e ) {
            super.mouseClicked ( e );
            if ( e.getClickCount () == 2 ) {
                rowIndex = replacedAssets.getSelectedRow ();
                columnIndex = replacedAssets.getSelectedColumn ();
                if ( rowIndex == 0 && ( columnIndex == 1 || columnIndex == 2 ) ) {
                    initial = replacedAssets.getValueAt ( rowIndex , columnIndex );
                    JOptionPane.showMessageDialog ( parent , "Editing this Field may cause error in the data causing problems." , "Error Edit Not Permitted For This Field" , JOptionPane.ERROR_MESSAGE );
                }
            }
        }
    } );

Это мой слушатель мыши. Код Пожалуйста, помогите.PS: нормально работает для JLabel.

1 Ответ

0 голосов
/ 15 сентября 2018

Замена mouseClicked на mousePressed сработала для меня. Я считаю, что это потому, что mouseClick является комбинацией mousePressed и mouseReleased. Если мышь перемещается даже на один пиксель между двумя событиями, событие не будет сгенерировано.

replacedAssets.addMouseListener (new MouseAdapter(){
            @Override
            public void mousePressed(MouseEvent mouseEvent) {
                super.mousePressed(mouseEvent);
                JTable table = (JTable) mouseEvent.getSource();
                if (mouseEvent.getClickCount() == 2 ) {
                    System.out.println("Double click detected");
                }
           }
   });
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...