Announcement

Collapse
No announcement yet.

Auswahlkriterien definieren

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • Auswahlkriterien definieren

    Ich möchte aus einer Tabelle die Einträge aus einer bestimmten Spalte lesen und diese dem Benutzer in einer JList zur Auswahl geben.
    Falls diese Spalte mehrere Einträge beinhaltet mit dem genau gleichen Text, möchte ich diese nur einmal anzeigen.
    Hat hier jemand Erfahrung und kann mir einen heissen Typ geben, wie er dies gelöst hat.
    Danke und Grüsse
    Haempu

  • #2
    Hallo,
    eigentlich kein besonders schwieriges Unterfangen. Da Sourcecode hier im Forum aufgrund der seltsamen formattierungen meis unschön aussieht, versuche ich es so zu beschreiben.

    Also ich würde mir zuerstmal per getModel() jeweils das Tabellen- und das Listenmodell holen.
    Dann für jeden Eintrag in der Tabelle getValueAt(Zeile,Spalte) aufrufen. In einer Schleife diesen Eintrag mit allen bereits vorhandenen Einträgen in der Liste vergleichen und den Eintrag in die Liste einfügen wenn der Eintrag noch nicht in der Liste vorhanden war.
    Das Eifügen in die Liste erledigst Du am besten mit ListModel.setValueAt(ListModel.getSize()).
    Habe ich was vergessen ? Wen ja frag einfach.
    Ich hoffe ich konnte Dir etwas helfen.

    Gruss

    Jürge

    Comment


    • #3
      Die Auskunft von Jürgen ist gut. Falls du dich mit umfangreicherem Beispiel-Code auseinandersetzen magst, empfehle ich dir de.must.DataComboBox aus dem Open Source Framework at http://www.must.de/Jacomp.ht

      Comment


      • #4
        Hallo,

        für das Aussortieren doppelter Einträge könnte man auch eine java.util.HashSet benutzen. Einfach alle Text mit add(Text) hinzufügen, dabei werden doppelte Einträge ignoriert und dann mit dem Iterator der HashSet die JList füllen.

        Das für und wieder:
        + Das Abgleichen mit den vorhanden Einträgen entfällt.
        - Die Daten liegen kurzfristig dreimal im Speicher (Table/HashSet/JList).

        Meinst du eine JTable oder SQL-Table(?)

        Hoffe geholfen zu haben

        Hans-Christop

        Comment


        • #5
          Hallo,

          die Daten liegen nur einmal im Speicher, da ja nur Referenzen auf die Objekte gehalten werden. Um sie dreimal zu halten müsste man diese Objekte vervielfältigen - klonen. Ist also nicht weiter tragisch.
          Aber gegen ein explizites null setzen von nicht mehr benötigten Referenzen spricht natürlich nichts.

          Thoma

          Comment


          • #6
            Hallo zusammen,

            der Tag fängt ja gut an. Entwickler-Forum rulez ;o)

            Warum ich mich derart freue ? Am späten Morgen Infos aus der Java-Welt, die einem neu sind und einen wirklich weiterbringen pur.

            Insbesondere der Beitrag von Hans-Christoph mit dem HaschSet (Spass muss sein) ist wirklich mal wieder eine kleine Perle, die man sehr leicht übersehen könnte. Solche Lösungen mag ich, denn sie kommen sehr smart daher und zeigen was sich in Java mit ein bischen Phantasie alles realisieren lässt R-E-S-P-E-C-T-!-!-!

            In keinster Weise als weniger gut zu bezeichnen ist der Tip von Christoph, der wiedereinmal ein OpenSource-Projekt empfiehlt, das man so normalerweise nicht auf Anhieb gefunden hätte. Das ist wahres information-sharing !!!

            Wo wir bei einem interessanten Thema sind: Warum gibt es eigentlich nirgendwo im Web eine Seite auf der man Links zu bekannten OpenSource-Projekten findet. Sozusagen OpenSource-WhitePages, oder gibt es sowas schon ??? Wenn nicht: Liebe Macher von entwickler.com, das wäre doch eine coole Rubrik für entwickler.com. Vielleicht würde aber auch eine Forenkategorie genügen, unter dem folgenden Pfad:

            Entwickler Forum>Java>OpenSource-Projekte

            Ist das für Euch interessant ?

            Einen Tag des fröhlichen Schaffens wünscht Euch allen

            Jürge

            Comment


            • #7
              Hallo zusammen, erst mal vielen Dank für die vielen Tips.
              Das bringt mich echt weiter.
              Werde Euch auf dem laufenden halten, welches meine Lösung war.
              Bis dahin,frohes Werken und grüsse
              haemp

              Comment

              Working...
              X