Anzeige:
Ergebnis 1 bis 12 von 12

Thema: Höhe einer selbstgeschriebenen JComponent bestimmen

  1. #1
    Registrierter Benutzer Avatar von mwanaheri
    Registriert seit
    28.10.2003
    Ort
    Bayreuth
    Beiträge
    569

    Höhe einer selbstgeschriebenen JComponent bestimmen

    Ich versuche mich gerade daran, eine Komponente selbst zu schreiben. Sie soll wie eine ComboBox funktionieren, nur dass man im Textfeld tippen kann und die Liste entsprechend gefiltert wird. (Wenn jemand so eine Komponente kennt, bin ich für jeden Hinweis dankbar ;-))
    Mein Problem ist nun erst mal die korrekte Größenangabe. Ich hätte gern eine Dimensionierung, wie sie bei der JComboBox üblich ist, mit automatischer Anpassung natürlich. Weiß jemand, wie ich die Größenvorgaben von Komponenten ermitteln kann?
    Das Ziel ist das Ziel.

  2. #2
    Registrierter Benutzer Avatar von bischi
    Registriert seit
    10.04.2003
    Beiträge
    4.828
    Ich würd an deiner Stelle ein JTextField nehmen (für die Eingaben) und darunter die JComboBox. Ich glaub, du könntest sogar direkt in der JComboBox Eingaben machen. Abfangen musst dus dann mit nem Action-Listener. Oder hab ich was falsch verstanden?

    MfG Bischi

    "There is an art, it says, or rather, a knack to flying. The knack lies in learning how to throw yourself at the ground and miss it" The hitchhiker's guide to the galaxy by Douglas Adams

    --> l2picfaq.pdf <-- www.n.ethz.ch/~dominikb/index.html LaTeX-Tutorial, LaTeX-Links, Java-Links,...

  3. #3
    Registrierter Benutzer Avatar von mwanaheri
    Registriert seit
    28.10.2003
    Ort
    Bayreuth
    Beiträge
    569
    Ja, man kann eine Combobox "editierbar" machen, also das Textfeld schreibbar. Mir geht es aber um folgendes: Es gibt eine Liste, aus der ausgewählt werden soll. Diese Liste wird aber etwas lang, so dass das Suchen umständlich wird. Also sollen die Eingaben im Textfeld beobachtet werden und die Liste entsprechend dem eingetippten gefiltert werden, so dass nur die Einträge in der Liste angezeigt werden, die mit dem eingetippten (beginsWith) übereinstimmen. Ein soll kein Eintrag neu angelegt werden können und auch nichts eingegeben werden können, was nicht in der ursprungsliste vorhanden ist.
    Das Ziel ist das Ziel.

  4. #4
    Registrierter Benutzer Avatar von bischi
    Registriert seit
    10.04.2003
    Beiträge
    4.828
    Wo willst du eingeben können: In der Combobox direkt oder extern?

    MfG Bischi

    "There is an art, it says, or rather, a knack to flying. The knack lies in learning how to throw yourself at the ground and miss it" The hitchhiker's guide to the galaxy by Douglas Adams

    --> l2picfaq.pdf <-- www.n.ethz.ch/~dominikb/index.html LaTeX-Tutorial, LaTeX-Links, Java-Links,...

  5. #5
    Registrierter Benutzer Avatar von mwanaheri
    Registriert seit
    28.10.2003
    Ort
    Bayreuth
    Beiträge
    569
    Hey Bischi, ich hab mal das gewünschte Verhalten simuliert, im angehängten Bild von links nach rechts zu sehen.

    Ich würde die Komponente sehr gerne von JComboBox ableiten, nur kriege ich da keinen KeyListener angebracht.
    Das Ziel ist das Ziel.

  6. #6
    Registrierter Benutzer Avatar von bischi
    Registriert seit
    10.04.2003
    Beiträge
    4.828
    Könntest du nicht einfach das oberste Element leer lassen und editable machen? Danach einen Action-Listener drauf, bei Aktion jeweils auslesen und die nicht passenden Elemente entfernen?

    MfG Bischi

    "There is an art, it says, or rather, a knack to flying. The knack lies in learning how to throw yourself at the ground and miss it" The hitchhiker's guide to the galaxy by Douglas Adams

    --> l2picfaq.pdf <-- www.n.ethz.ch/~dominikb/index.html LaTeX-Tutorial, LaTeX-Links, Java-Links,...

  7. #7
    Registrierter Benutzer Avatar von mwanaheri
    Registriert seit
    28.10.2003
    Ort
    Bayreuth
    Beiträge
    569
    Na ja, einerseits will ich ja, dass schon das Tippen die Aktion auslöst und nicht erst <enter>, andererseits soll sich die Combobox um das Filtern kümmern, nicht das umliegende Programm. Außerdem muss es ja möglich sein, die Auswahl wieder zu erweitern.
    Ich habe das Problem heute gelöst. Es gelang mir endlich, einen KeyListener anzubringen. Das geht bei JComboBox.getEditor().getEditorComponent(). So konnte ich das Ganze doch noch von JComboBox ableiten. Da habe ich inzwischen viel Code für die Tonne geschrieben <grumpf>.
    Ich habs mal samt Demo in ein Zip gepackt und angehängt, falls es dich interessiert. Ist nicht ausgefuchst, funktioniert aber.

    Danke für die Tips
    Das Ziel ist das Ziel.

  8. #8
    Registrierter Benutzer Avatar von bischi
    Registriert seit
    10.04.2003
    Beiträge
    4.828

    Thumbs up

    Sieht nett aus - vor allem ist der Code recht kurz. Auch das Gimmick mit dem rot hintermalen find ich hübsch.

    Mir fehlen ein bisschen die Kommentare - allerdings ist der Code sonst wirklich übersichtlich gehalten.

    MfG Bischi

    "There is an art, it says, or rather, a knack to flying. The knack lies in learning how to throw yourself at the ground and miss it" The hitchhiker's guide to the galaxy by Douglas Adams

    --> l2picfaq.pdf <-- www.n.ethz.ch/~dominikb/index.html LaTeX-Tutorial, LaTeX-Links, Java-Links,...

  9. #9
    Registrierter Benutzer Avatar von Boron
    Registriert seit
    07.01.2002
    Beiträge
    827
    Ist in der jar-Datei nicht schon der kompilierte Code drin?
    Kann man das irgendwie "starten" (Meine Java-Kenntnisse sind nicht mehr so doll)?

    Mit "java filterdemo.jar" kommt eine "Exception in thread "main" java.lang.NoClassDefFoundError: filterdemo/jar" in der Konsole.
    Gruß Boron (der sich oft wegen mieser Rechtschreibung anderer die Augen reiben muss)

    LINUX IS LIKE AN INDIAN TENT: NO GATES, NO WINDOWS AND AN APACHE INSIDE!
    Hardware Monitoring unter Linux -> http://santafu.sourceforge.net (Temperaturen, Lüfterdrehzahlen und Spannungen)

  10. #10
    Registrierter Benutzer Avatar von bischi
    Registriert seit
    10.04.2003
    Beiträge
    4.828
    Bei mir reicht ein doppelklich auf das Jar-file...

    Code:
    javaw.exe -jar Filename.jar
    sollte es sonst auch tun.

    MfG Bischi

    "There is an art, it says, or rather, a knack to flying. The knack lies in learning how to throw yourself at the ground and miss it" The hitchhiker's guide to the galaxy by Douglas Adams

    --> l2picfaq.pdf <-- www.n.ethz.ch/~dominikb/index.html LaTeX-Tutorial, LaTeX-Links, Java-Links,...

  11. #11
    Registrierter Benutzer Avatar von Boron
    Registriert seit
    07.01.2002
    Beiträge
    827
    Mist, Firmenrechner, da war noch Java 1.4 drauf. Flux die Version 5 installiert und schon klappts .
    Vor allem sehr praktisch.
    Gruß Boron (der sich oft wegen mieser Rechtschreibung anderer die Augen reiben muss)

    LINUX IS LIKE AN INDIAN TENT: NO GATES, NO WINDOWS AND AN APACHE INSIDE!
    Hardware Monitoring unter Linux -> http://santafu.sourceforge.net (Temperaturen, Lüfterdrehzahlen und Spannungen)

  12. #12
    Registrierter Benutzer Avatar von mwanaheri
    Registriert seit
    28.10.2003
    Ort
    Bayreuth
    Beiträge
    569
    Ich muss mal schnell eine Warnung loswerden: gerade habe ich festgestellt, dass die Komponente noch Probleme macht, wenn man einen Action-Listener bei ihr registriert. Da muss ich wohl noch nacharbeiten.

    Das Datumsfeld, das die Gültigkeit des Datums prüft (vor x, nach x, ...) und wahlweise ein GregorianCalendar oder ein java.sql.Date ausspuckt, muss also noch warten...
    Das Ziel ist das Ziel.

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •