Aufgabe zum nachdenken
-
Es werden 10 Labels dynamisch erstellt, wenn die Maus über diese fährt sollen die aktiven Labels mit dem Border hervorgehoben werden.
Ich habe diese Aufgabe folgendermaßen gelöst:
[java]
for(int i=0; i<9; i++) {// 10 Labels Dynamisch erzeugen
label[i] = new JLabel(" Frage " +i);// 10 MouseListener Dyn. erzeugen
label[i].addMouseListener(new java.awt.event.MouseAdapter() {
public void mousePressed(MouseEvent e) {
// nothing
}
public void mouseEntered(MouseEvent e) {String s = e.getSource().toString();
int i1 = s.indexOf("Frage")+6;
int i2 = s.indexOf("verticalAlignment")-1;
int iTemp = Integer.parseInt( s.substring(i1, i2).trim());// Border Zeigen
label[iTemp].setBorder(BorderFactory.createEtchedBorder() );
}
public void mouseExited(MouseEvent e) {String s = e.getSource().toString();
int i1 = s.indexOf("Frage")+6;
int i2 = s.indexOf("verticalAlignment")-1;
int iTemp = Integer.parseInt( s.substring(i1, i2).trim());// Border entfernen
label[iTemp].setBorder(BorderFactory.createEmptyBorder(2,2,2,2) );
}
});panel.add(label[i]);
}[/code]fällt jemandem eine elegantere bzw. kürzere Lösung ein?
mfg.
christine[ Dieser Beitrag wurde am 25.04.2003 um 21:08 Uhr von CengizS editiert. ]
-
Hallo,
wollte nur sagen, dass Code-Tags wie folgt aussehen müssen
Dein Code hier
+ Doppelposting gelöscht, da ich die Tags schon korrigiert hatte. Wenn man sich übrigens registriert dann kann man seine eigenen Postings auch wieder korrigieren - nur so zur Info...
[ Dieser Beitrag wurde am 25.04.2003 um 21:11 Uhr von CengizS editiert. ]
-
Ich würde eine Klasse von Label ableiten und in dieser den MouseListener implementieren. Entsprechend würde ich dann mit dieser abgeleiteten Klasse arbeiten.
@CengizS: Wo du gerade vom Registrieren redest: Schreibst du es in die News, wenn man sich auf Javacore.de registrieren kann? Noch was: Es gibt übrigens noch einen Link auf das Forum auf der Hauptseite, der nicht funktioniert!
[ Dieser Beitrag wurde am 25.04.2003 um 21:51 Uhr von Gregor editiert. ]