当鼠标光标hover在JButton上时,更改布尔值
当你将鼠标hover在我的按钮上时,它会从黑色变为灰色,我使用setRolloverIcon(ImageIcon);
执行此操作setRolloverIcon(ImageIcon);
。 当鼠标光标hover在JButton上时,是否有任何简单的方法可以使布尔值等于true,或者我是否必须使用MouseMotionListener来检查鼠标光标的位置?
当鼠标光标hover在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; } }
祝好运