JLabel mit Doppelklick edtierbar machen

Von: , Frage gestellt am Mo, 10. Mai 2004

Hallo liebe Experten.

Ich benötige eine Swing-Komponente, die Text anzeigt und sich mit einem Doppelklick sich in ein Eingabefeld verwandelt, wie sie in GUI-Buildern wie Netbeans oder JBuilder der Fall ist.

Für Strategien, Vorschläge zu Realisierung oder fertige Implemenierungen bin ich sehr dankbar.

mfg,

Andreas

1 Antworten zu dieser Frage

  1. Antwort von nach 12 Stunden 0 hilfreich
    Re: JLabel mit Doppelklick edtierbar machen

    Eine Moeglichkeit...

    Du koenntest z.B. ein Panel mit einem CardLayout erstellen dem
    du dann die benoetigten Komponenten zuweist (hier also Label
    und TextField). Beim CardLayout werden die Componenten wie ein
    Kartenstapel aufeinander gelegt.

    Das Label bekommt einen MouseListener, der dann den Doppelklick
    abfaengt.

    Panel p = new Panel(new CardLayout());
    ...
    // anonymer MouseListener am Label
    ...
    if (e.getClickCount() == 2) {
    CardLayout layout = (CardLayout) cntnrPanel.getLayout();
    layout.next(cntnrPanel);
    }
    ...
    p.add(myLabel, "Objectname");


    Mit next() wird das TextField sichtbar.
    Nach der Eingabe kannst du wieder auf das Label zurueckschalten.
    Wieder mit next().
    Mit show(cntnrPanel, "Objectname") kannst du auch direkt auf
    ein Objekt zugreifen.

    In meinem Beispiel ist das Panel der Container, von dem
    das Layout mit getLayout() geholt wird. Ich habe es mir vorher
    halt in einer globalen Variablen gemerkt.

    Gruss, Patrick

Keine passende Antwort gefunden? Jetzt eigene Frage stellen!