import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;
import java.awt.event.MouseListener;
import javax.swing.*;
public class AutoRepeatButton extends JLabel implements ActionListener{
private Timer zeit,zeit1, zeit2;
private int t1, t2;
public Timer time=new Timer(0,this);
//Konstruktor
public AutoRepeatButton(String text, ImageIcon image,int delay1, int delay2){
super(text);
setIcon(image);
t1=delay1;//500 msec übergeben
t2=delay2;//200 msec übergeben
addMouseListener(new MyMouseListener());
addActionListener(new HinzuListener());
removeActionListener(new ZurueckListener());
time.setInitialDelay(t1); //Setzt die Millisekunden, bis das erste Event ausgelöst wird
time.setDelay(t2);//Setzt die Millisekunden, zwischen denen jeweils ein Event ausgelöst wird
}
/***Methoden***/
public void startEvent(){
System.out.println("zeit1");
time.start(); //Startet alle 200 msec ein ActionEvent
}
public void stopEvent(){
time.stop();
}
/*** set und get Methoden für Zeitverzögerung***/
public void set_t1(int i)
{
t1 = i;
time.setInitialDelay(t1);
}
public void set_t2(int i)
{
t2 = i;
time.setDelay(t2);
}
public int get_t1()
{
return t1;
}
public int get_t2()
{
return t2;
}
public void actionPerformed(ActionEvent evt) {
ActionListener al;
System.out.println("zeit2");
}
public void addActionListener(ActionListener e){
}
public void removeActionListener(ActionListener el){
}
/***innere Klassen***/
public class MyMouseListener extends MouseAdapter {
public void mousePressed(MouseEvent m) {
setBorder( BorderFactory.createLoweredBevelBorder() );
startEvent(); //Zeit wird gezählt
}
public void mouseReleased(MouseEvent e) {
setBorder( BorderFactory.createRaisedBevelBorder() );
stopEvent();
}
}
public class HinzuListener implements ActionListener{
public void actionPerformed(ActionEvent e) {
System.out.println("Berührt");
}
}
public class ZurueckListener implements ActionListener{
public void actionPerformed(ActionEvent arg0) {
//funktion aufrufen zum verschieben des JSilder
}
}
/***Ende innere Klassen***/
}
/***Ende AutoRepeatButton Klasse***/
public class MainGUITest {
private JFrame frame=new JFrame();
public JSlider slider;
public AutoRepeatButton button1, button2;
public int value;
static DefaultBoundedRangeModel model_one = new DefaultBoundedRangeModel();
public MainGUITest(){
//Layout
FlowLayout flow = new FlowLayout(FlowLayout.CENTER);
frame.getContentPane().setLayout(flow );
frame.setDefaultCloseOperation( JFrame.EXIT_ON_CLOSE );
//Button anlegen
button1 = new AutoRepeatButton(" links ",new ImageIcon("left.png"), 500, 200);
button1.setBorder( BorderFactory.createRaisedBevelBorder() );//rahmen um AutoButton
button1.addActionListener(button1);
button2 = new AutoRepeatButton(" rechts ",new ImageIcon("right.png"), 500, 200);
button2.setBorder( BorderFactory.createRaisedBevelBorder() );
frame.getContentPane().add( button1 );
frame.getContentPane().add( button2 );
slider = new JSlider( 0, 50, 25 );//0-min, 100-max, 25-value-mittig
frame.getContentPane().add( slider );
slider.setPaintTicks(true); //markierungen werden gesetzt
slider.setMajorTickSpacing( 10 );
slider.setMinorTickSpacing( 2 );
value=slider.getValue();
button1.addActionListener(button1);
System.out.println(value);
frame.pack();
frame.setVisible(true);
}
public static void main(String[] args){
MainGUITest aMainGUI = new MainGUITest();
}
}