tutorials.de Buch-Aktion 05/2012
ERLEDIGT
NEIN
ANTWORTEN
4
ZUGRIFFE
1786
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    Spider2618 Spider2618 ist offline Rookie
    Registriert seit
    May 2005
    Beiträge
    5
    Hey!

    -Ich möchte eine dynamisch zu füllende JList haben und:
    -bei Auswahl eines Namens die ID in die Datenbank speichern.

    Daher:
    Aus einer Datenbank sollen je Element der Liste 2 Einträge (z.B. Kunden-ID und Kunden-Name) vorhanden sein.

    Wie geht das?

    Schon ein eingefügtes 2-elementiges Array läßt sich nicht über das Model-Object auslesen.

    (Datenbank-Anbindung, SQL etc. sind klar, DefaultListModel für das dynamische Befüllen verwendet)

    Gruß
     

  2. #2
    snake_plissken snake_plissken ist offline Mitglied
    Registriert seit
    Dec 2004
    Beiträge
    12
    Hi,

    falls Du nicht ohnehin bereits eine Lösung für Dein Problem gefunden hast (ich bin spät...), hier mein Vorschlag (wenn ich Dich richtig verstanden habe, möchtest Du ja pro Listeneintrag den Id aus der Kundentab "unsichtbar" mitspeichern (und somit bleibt Deine Frage wenigstens nicht unbeantwortet, auch wenns nur symbolischen Charakter hat):

    class CModel extends DefaultListModel{
    ArrayList a = new ArrayList();

    public void addEntry(int id, String name){
    super.addElement(name);
    a.add(new Integer(id));
    }

    public void insertEntry(int index, int id, String name){
    super.add(index, name);
    a.add(index, new Integer(id));
    }

    public int getId(int index){
    return Integer.valueOf(a.get(index).toString()).intValue();
    }
    }


    // ANWENDUNG:
    // (Daten über JDBC auslesen)

    Primary Key aus Kundentabelle -> 666
    Name aus Kundentabelle: -> "Luzifer GmbH"

    // Daten in GUI verarbeiten

    CModel model = new CModel();
    model.addEntry(666, "Luzifer GmbH");

    JList list = new JList(model);

    // Primary Key des 1. Tabelleneintrags holen

    System.out.println("ID: " + model.getId(0));

    // In echter Applikation natürlich so:

    model.getId(list.getSelectionModel().getMinSelectionIndex());



    Cheers,

    Snake
    Geändert von snake_plissken (04.06.05 um 00:51 Uhr)
     

  3. #3
    snake_plissken snake_plissken ist offline Mitglied
    Registriert seit
    Dec 2004
    Beiträge
    12
    Warte,

    falls man einen Eintrag löschen möchte, fehlt der CModel-Klasse natürlich noch diese Methode:

    public void deleteEntry(int index){
    super.removeElementAt(index);
    a.remove(index);
    }

    ...und wenn man die ganze Liste löschen möchte
    public void deleteAllEntries(){
    super.removeAllElements();
    a.clear();
    }

    ansonsten CModel neu initialisieren und der JList zuweisen


    Die Klapperschlange
     

  4. #4
    Spider2618 Spider2618 ist offline Rookie
    Registriert seit
    May 2005
    Beiträge
    5
    Hallo Snake!

    Hab zwar ´nen Workaround gefunden, aber das ist natürlich viel eleganter. Wußte nicht, wie man das Model ausbaut.

    Vielen Dank.

    Gruß
    Spider

    P.S. Toller Film übrigens: Die Klapperschlange ( Snake Plessken) 1981
     

  5. #5
    Spider2618 Spider2618 ist offline Rookie
    Registriert seit
    May 2005
    Beiträge
    5
    Hey!

    Zugriff auf den Inhalt der Liste dann z.B. (ohne Umwege über Model)
    durch:

    System.out.println("ID: " + ((CModel)list.getModel()).getId(0));

    Gruß

    Spider
     

Ähnliche Themen

  1. Firefox: Wikipedia mehrspaltig anzeigen?
    Von Frezl im Forum Coders Talk
    Antworten: 4
    Letzter Beitrag: 12.07.09, 17:59
  2. Überschrift Mehrspaltig
    Von brunisand im Forum Desktop Publishing (DTP)
    Antworten: 2
    Letzter Beitrag: 28.07.08, 11:01
  3. SWT List mehrspaltig
    Von Drizztd im Forum Swing, Java2D/3D, SWT, JFace
    Antworten: 0
    Letzter Beitrag: 27.10.06, 09:46
  4. Comobox mehrspaltig
    Von bonke-online im Forum .NET Archiv
    Antworten: 4
    Letzter Beitrag: 21.04.05, 10:40
  5. Comobox mehrspaltig
    Von bonke-online im Forum Sonstige Grafik-Programme
    Antworten: 0
    Letzter Beitrag: 19.04.05, 22:51