2016-06-23 4 views
0

Я изучаю Java и пытаюсь реализовать MouseListener в первый раз. Я прочитал java doc MouseListener, но мой код не работает, так как ничего не происходит, когда я нажимаю кнопку. Вот jbutton с нажатым и выпущенным событием. Может кто-нибудь объяснить, где я ошибся?Реализация приемника мыши

JButton upButton_1 = new JButton("Up"); 
    upButton_1.addMouseListener(new MouseAdapter(){ 
     public void mousePressed(MouseEvent pevt) { 
      upButtonPressPerformed(pevt); 
     } 
     public void mouseReleased(MouseEvent revt) { 
      upButtonReleasePerformed(revt); 
     } 

     public synchronized void upButtonPressPerformed(
       MouseEvent pevt) { 
      resultsTextArea.setText("Up Button Activated, String: " + downString); 


       try{ 
        //See Above comments for sending ASCII String 
        byte[] bytes = DatatypeConverter.parseHexBinary(upString); 


        TwoWaySerialComm.SerialWriter sw = new TwoWaySerialComm.SerialWriter(
          twoWaySerCom.serialPort.getOutputStream()); 

       sw.out.write(bytes); 

      } catch (IOException e) { 

       e.printStackTrace(); 
      } 
     } 
     public synchronized void upButtonReleasePerformed(
     MouseEvent revt) { 
     resultsTextArea.setText("Up Button released, String: " + downString); 


      try{ 
       //See Above comments for sending ASCII String 
       byte[] bytes = DatatypeConverter.parseHexBinary(upString); 


       TwoWaySerialComm.SerialWriter sw = new TwoWaySerialComm.SerialWriter(
         twoWaySerCom.serialPort.getOutputStream()); 

      sw.out.write(bytes); 

     } catch (IOException e) { 

      e.printStackTrace(); 
     } 
    } 
    }); 
+0

a) Объясните, что вы подразумеваете под «не работает». б) MouseListener в JButton? Я не знаю, есть ли причина, по которой это не сработает, но это не имеет большого смысла. Сначала я попробую сделать что-нибудь еще (например, только JPanel или JLabel). – John3136

+0

Я хочу отправить строку при нажатии кнопки, а затем другую строку, когда она будет выпущена. В тот момент, когда я нажимаю кнопку, ничего не происходит. –

+0

Что вы рекомендовали бы в качестве альтернативы? –

ответ

3

ActionListener - это то, что вы ищете, если хотите работать с кнопками.

JButton button = new JButton("SomeButton"); 
button.addActionListener(this); 

void ActionPerformed(ActionEvent e) { 
    if(e.getSource() == button) { 
     // do whatever you want if button is clicked 
    } 
} 

Или вы можете использовать анонимный внутренний класс:

button.addActionListener(new ActionListener() { 
    public void actionPerformed(ActionEvent e) {   
     //do whatever you want 
    } 
}); 

//or the Java8 version 
button.addActionListener((e) -> { 
    //do whatever you want 
}); 

Уит MouseListener вы можете слушать такие события, как: MouseClicked, MouseEntered, MouseExited, MousePresse, MouseReleased. Вы можете использовать их, но для кнопки нажмите ее более логично, чтобы слушать ваши кнопки, а не вашу мышь.

+0

Привет. Спасибо за ваш ответ. На самом деле это то, что я имел раньше. Возможно ли, что нажатие кнопки и нажатие кнопки ведут себя по-другому? как MousePress и Mouse Release? –

+0

@Display Name «У меня есть чувство, сочетающее ChangeListener с вызывающей кнопкой.isSelected() может сделать трюк. Возможно, вы можете попробовать». Это то, что я могу дать вам надежду, что это поможет. http://stackoverflow.com/questions/22942131/java-jbutton-release-action – eldo

+0

На самом деле, я думаю, я понимаю. Благодаря! –

Смежные вопросы