hallo,
ich habe mir eine Klasse geschrieben, welche ein Label vergößert.
Wenn man mit der Maus auf das Label fährt, wird eine Methode aufgerufen, die das Label bis zu einer bestimmten
Größe vergrößert.
Dies passiert in einem Timer.
Genauso, wenn das Event MouseExited aufgerufen wird, wird das Label wieder bis zur Ursprungsgröße verkleinert.
Dies passiert wiederum auch in einem Timer.
So habe ich nun 2 Timer pro Label, was nicht gerade performant ist. :cry:
Nun habe ich mehrere solcher labels, also hat jedes Label ein Objekt der ResizeKlasse.
Beispiel:
5 Label -> 5 Objekte von "ResizeKlasse" --> 10 Timer
Wie könnte man das vielleicht lösen?
Hier mal ein Quellcodeauszug:
mfg
tigga
ich habe mir eine Klasse geschrieben, welche ein Label vergößert.
Wenn man mit der Maus auf das Label fährt, wird eine Methode aufgerufen, die das Label bis zu einer bestimmten
Größe vergrößert.
Dies passiert in einem Timer.
Genauso, wenn das Event MouseExited aufgerufen wird, wird das Label wieder bis zur Ursprungsgröße verkleinert.
Dies passiert wiederum auch in einem Timer.
So habe ich nun 2 Timer pro Label, was nicht gerade performant ist. :cry:
Nun habe ich mehrere solcher labels, also hat jedes Label ein Objekt der ResizeKlasse.
Beispiel:
5 Label -> 5 Objekte von "ResizeKlasse" --> 10 Timer
Wie könnte man das vielleicht lösen?
Hier mal ein Quellcodeauszug:
Code:
public void setKleiner(){
if (timer != null){
timer.stop();
}
timer = new Timer(10, new ActionListener() {
public void actionPerformed(ActionEvent e) {
kleiner();
}
});
timer.start();
}
public void setGroesser(){
if (timer != null){
timer.stop();
}
timer = new Timer(10, new ActionListener() {
public void actionPerformed(ActionEvent e) {
groesser();
}
});
timer.start();
}
private void kleiner(){
if (this.label.getWidth() < 100){
this.label.setSize(100, 100);
this.label.setLocation(point);
timer.stop();
}else{
this.label.setSize(this.label.getWidth()-2, this.label.getHeight()-2);
this.label.setLocation(this.label.getX()+1, this.label.getY()+1);
}
}
private void groesser(){
if (this.label.getWidth() > 150){
timer.stop();
}else{
this.label.setSize(this.label.getWidth()+2, this.label.getHeight()+2);
this.label.setLocation(this.label.getX()-1, this.label.getY()-1);
}
}
public void setLocation(int i, int j) {
point = new Point(i,j);
}
mfg
tigga