Hallo,
ich habe nochmal eine Frage!
Und zwar habe einen Button. Wenn er länger gedrückt wird als t1 500 msec, dann
soll alle t2 200 msec ein ActionEvent ausgelöst werden. (t1 und t2 werden dem Konstruktor übergeben)
Wie mache ich das? Hier mein Code???
ich habe nochmal eine Frage!
Und zwar habe einen Button. Wenn er länger gedrückt wird als t1 500 msec, dann
soll alle t2 200 msec ein ActionEvent ausgelöst werden. (t1 und t2 werden dem Konstruktor übergeben)
Wie mache ich das? Hier mein Code???
Code:
public class AutoRepeatButton extends JLabel implements ActionListener{
private Timer zeit1, zeit2;
private int t1, t2;
//private ImageIcon rightIcon = new ImageIcon("right.png");
//Konstruktor
public AutoRepeatButton(String text, ImageIcon image,int delay1, int delay2){
super(text);
setIcon(image);
t1=delay1;//msec übergeben
t2=delay2;//msec übergeben
addMouseListener((MouseListener) new MyMouseListener());
if (t1 <=0){
System.out.println("Fehler beim Eingage von delay");
System.out.println("Wert 500 wird eingesetzt");
t1=500;
}
zeit1 = new Timer(t1,this); //zeit auf 500 msec setzten
zeit2 = new Timer(t2,this); //zeit auf 500 msec setzten
}
/***Methoden***/
public void startEvent(){
System.out.println("zeit");
if(t1>800){
zeit2.start(); //Startet alle 200 msec
System.out.println("zeit länger");
}
}
public void stopEvent(){
zeit1.stop();
}
// Set-Delay
public void setDelay(int delay){
zeit1.setDelay(delay);
}
// Get-Delay
public int getDelay(){
return zeit1.getDelay();
}
public boolean isEvent(){
return zeit1.isRunning();
}
public void actionPerformed(ActionEvent evt) {
System.out.println("hallo welt");
}
/***innere Klasse MyMouseListener***/
public class MyMouseListener extends MouseAdapter {
public void mousePressed(MouseEvent m) {
ActionEvent e;
setBorder( BorderFactory.createLoweredBevelBorder() );
startEvent(); //Zeit wird gezählt
if(t1==500){
actionPerformed(null);
}else if(t1>500){
startEvent();
}
}
public void mouseReleased(MouseEvent e) {
setBorder( BorderFactory.createRaisedBevelBorder() );
}
}
/***Ende innere Klasse***/
}