[英]Changing value of boolean when mouse cursor hovers over a JButton
我有一個按鈕,當您將鼠標懸停在上面時,它會從黑色變為灰色,這是通過setRolloverIcon(ImageIcon);
。 當鼠標光標懸停在JButton上時,是否有任何簡單的方法可以使布爾值等於true,還是我必須使用MouseMotionListener來檢查鼠標光標的位置?
有什么簡單的方法可以使鼠標懸停在JButton上時使布爾值等於true
您可以將ChangeListener
添加到ButtonModel
,例如
JButton.getModel().addChangeListener(new ChangeListener() {
@Override
public void stateChanged(ChangeEvent e) {
ButtonModel model = (ButtonModel) e.getSource();
if (model.isRollover()) {
//do something with Boolean variable
} else {
}
}
});
這是使用ButtonModel
的示例:
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.SwingUtilities;
import javax.swing.event.ChangeEvent;
import javax.swing.event.ChangeListener;
public class TestButtons {
protected void createAndShowGUI() {
JFrame frame = new JFrame("Test button");
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
final JButton button = new JButton("Hello");
button.getModel().addChangeListener(new ChangeListener() {
@Override
public void stateChanged(ChangeEvent e) {
if (button.getModel().isRollover()) {
button.setText("World");
} else {
button.setText("Hello");
}
}
});
frame.add(button);
frame.pack();
frame.setVisible(true);
}
public static void main(String[] args) {
SwingUtilities.invokeLater(new Runnable() {
@Override
public void run() {
new TestButtons().createAndShowGUI();
}
});
}
}
嘗試這個:
button.addMouseListener(new MouseListener() {
public void mouseEntered(MouseEvent e) {
yourBoolean = true;
}
}
祝好運
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.