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. ]


  • Mod

    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. ]


Anmelden zum Antworten