package edu.jsu.leathrum.mathlets.shared; import javax.swing.*; import java.awt.event.*; public class RepeatingButton extends JButton implements MouseListener, MouseMotionListener, ActionListener { public RepeatingButton() { super(); super.addMouseListener(this); super.addMouseMotionListener(this); } public RepeatingButton(String s) { super(s); super.addMouseListener(this); super.addMouseMotionListener(this); } Timer runner = new Timer(0,this); public void setRepeat(int bf, int bt) { runner.setDelay(bt); runner.setInitialDelay(bf); } public void actionPerformed(ActionEvent e) { super.fireActionPerformed(new ActionEvent(this, ActionEvent.ACTION_PERFORMED, super.getText())); } public void mouseClicked(MouseEvent e) { runner.stop(); } public void mouseEntered(MouseEvent e) { } public void mouseExited(MouseEvent e) { runner.stop(); } public void mousePressed(MouseEvent e) { if (runner.getDelay()>0) runner.start(); } public void mouseReleased(MouseEvent e) { runner.stop(); } public void mouseDragged(MouseEvent e) { } public void mouseMoved(MouseEvent e) { } }