簡體   English   中英

選擇完成后不觸發Java切換按鈕事件,但將鼠標懸停時觸發

[英]Java toggle button event not fired when selection is done but fired when mouse hovered

我有一個切換按鈕,其狀態設置如下

 public void setSizeFeet(boolean enabled) {
        this.size_tb.setSelected(enabled);

   } 

我有聽眾

size_tb.addChangeListener(new javax.swing.event.ChangeListener() {
        public void stateChanged(javax.swing.event.ChangeEvent evt) {
            size_tbStateChanged(evt);
        }
    });
private void size_tbStateChanged(javax.swing.event.ChangeEvent evt) {                                     
     if (size_tb.isSelected()){
            size_tb.setText("Feet");
        } else {
            size_tb.setText("Meters");
        }
}    

我在設置狀態時調用第一個方法的問題。 什么都沒發生。 但是,只需將鼠標懸停在按鈕上,它就會更新以顯示正確的文本。 我稍稍休息了一下,發現將鼠標懸停在按鈕上方時,事件立即觸發。 當設置了選擇或鼠標單擊時,不應該將其懸停)

謝謝

使用ActionListener:

new JToggleButton().addActionListener(new ActionListener() {
  @Override
  public void actionPerformed(ActionEvent e) {
        JToggleButton tBtn = (JToggleButton)e.getSource();
        if (tBtn.isSelected()) {
           System.out.println("button selected");
        } else {
           System.out.println("button not selected");
        }        
  }
});

或者,您可以使用ItemListener:

 ItemListener itemListener = new ItemListener() {
  public void itemStateChanged(ItemEvent itemEvent) {
    int state = itemEvent.getStateChange();
    if (state == ItemEvent.SELECTED) {
      System.out.println("Selected");
    } else {
      System.out.println("Deselected");
    }
  }
};

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM