This is an example of using 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(); } }); } }
source share