Darstellung ComboBox in jTable

hansgerber

Mitglied
Gleiche Tabelle, noch eine Frage.
Eine Spalte meines jTable zeigt ComboBoxen an. Das funktioniert auch soweit, nur dass man nicht sieht, dass es eine ComboBox ist, die Pfeile fehlen.
Wie bekomme ich das visuell so hin, dass man sofort sieht, dass man ComboBoxen vor sich hat ?

hans
 

KrokoDiehl

Top Contributor
Die Tabelle unterscheidet zwischen Renderer und Editor. Ein Editor wird dann benutzt, wenn man eine Tabellenzelle editiert, ansonsten wird ein Renderer benutzt. So kann man theoretisch zwei völlig unterschiedliche Komponenten zum Darstellen und Editieren verwenden.
Was du nun brauchst ist ein eigener Renderer. Grundsätzlich setzt man den auch für seine Datentypen mit
Java:
myTable.setDefaultRenderer(MeinAuswählbarerDatenTyp.class, meinRenderer);

Für Comboboxen gibt es leider nicht so etwas, wie beim Editor, dass man
Code:
new DefaultCellEditor(myEditorComboBox);
macht (...oder ich kenn es nicht), daher muss man wohl eine eigene Klasse machen, zB von JComboBox erben und das TableCellRenderer Interface implementieren.
Oder man probiert etwas wie folgt, aber ich finde das sieht komisch aus...
Java:
myTable.setDefaultRenderer(MeinTyp.class, new DefaultTableCellRenderer()
{
    private JComboBox box = null;
    
    {
        // deine ComboBox muss die entsprechenden Werte haben, sonst 
        // ...gibts Probleme bei setSelectedItem()
        box = new JComboBox(new Object[]{0, 1, 2, 3, 4});
        box.setBorder(null);
    }

    @Override
    public Component getTableCellRendererComponent(...)
    {
        Component comp = super.getTableCellRendererComponent(...);
        box.setBackground( comp.getBackground() );
        box.setForeground( comp.getForeground() );
        box.setSelectedItem(value);
        return box;
    }
});

...so in etwa. Viel Spaß beim ausbauen ;)
Wichtig: Der Renderer wird NUR zum malen benutzt, d.h. das Ding sieht zwar aus wie eine JComboBox, beim Klicken und Ändern aber wird der Editor angesprochen. Insbesondere also wirkt ein Klick auf den Combobox-Pfeil nicht!
 

hansgerber

Mitglied
Nee, kein Effekt ersichtlich.

Ich versteh auch nicht, wenn schon eine ComboBox richtig integriert wird, warum dann die Pfeile fehlen.:bahnhof:
 

KrokoDiehl

Top Contributor
Vielleicht postet du mal etwas Code, denn aus dieser Situation heraus kann ich nur ins Blaue raten. Mein obiger Code funktioniert soweit und für sich.
Der Satz
Eine Spalte meines jTable zeigt ComboBoxen an. Das funktioniert auch soweit, nur dass man nicht sieht, dass es eine ComboBox ist [...]
weckt bei mir spontan keine Ideen ;)
 

Michael...

Top Contributor
...wie KrokoDiehl bereits erwähnt hat.
Eine JTable unterscheidet zwischen Renderer und Editor. Der Editor wird verwendet um Zelleninhalte zu bearbeiten (in Deinem Falle eine ComboBox) und der Render bestimmt das Aussehen der Zelle (in Deinem Fall ein JLabel)
Wenn der Zelleninhalt anders dargestellt werden soll, muss man einen entsprechenden Renderer definieren.
 

hansgerber

Mitglied
Ok, jetzt gehts, hatte einen Fehler drin.
Das ganze geht sogar wesentlich kürzer :
Code:
 @Override
    public Component getTableCellRendererComponent(...)
    {
       removeAllItems();
       addItem(value);
       return this;
    }

Unter Windows und Linux sieht das jetzt auch aus wie gewollt.
Unter Mac wirkt die abgerundete ComboBox in der Zelle irgendwie blöd, weil sie die Celle nicht ausfüllt. Die "flache" Variante habe ich noch nicht gefunden.

Danke für Eure Hilfe.
Hans
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
C Darstellung von Datum - Codes richtig? Java Basics - Anfänger-Themen 2
pkelod Binäre Darstellung Bitwise-Operator Java Basics - Anfänger-Themen 10
W OOP Objektorientiert: Darstellung von Uhrzeiten im 24-Stunden-Format Java Basics - Anfänger-Themen 15
J Frage zur Darstellung Java Basics - Anfänger-Themen 2
I Darstellung von Brüchen Java Basics - Anfänger-Themen 25
T Erste Schritte Darstellung der Java-Projekte in Eclipse Java Basics - Anfänger-Themen 2
H Eclipse , Design-Modus, unvollständige Darstellung Java Basics - Anfänger-Themen 0
I Fehlermeldung bei Darstellung von Arrays Java Basics - Anfänger-Themen 2
G Graphische Darstellung (Arbeiten mit einem Window) Java Basics - Anfänger-Themen 1
V Rechenzeichen bei Termen - Darstellung bei Schleifen Java Basics - Anfänger-Themen 7
M Arrays: Trennung von Daten und Darstellung Java Basics - Anfänger-Themen 1
B Quadratwurzel nach Heron in rekursiver Darstellung Java Basics - Anfänger-Themen 1
M Darstellung von Dezimalzahlen Java Basics - Anfänger-Themen 2
S Darstellung eines Balkendiagrammes Java Basics - Anfänger-Themen 14
G Adjazenzlisten-Darstellung Java Basics - Anfänger-Themen 2
J Falsche Darstellung von Float Java Basics - Anfänger-Themen 2
J Automatentheorie-Darstellung der regulären Sprache eines DEA Java Basics - Anfänger-Themen 5
A Char Bytes Umwandlung und Darstellung Java Basics - Anfänger-Themen 3
Fab1 Interface UML Darstellung von impl. Methoden Java Basics - Anfänger-Themen 7
K Problem mit JTable Daten-darstellung Java Basics - Anfänger-Themen 6
-horn- Einfache graphische Darstellung von 3D Koordinaten für Flugbahnen? Java Basics - Anfänger-Themen 4
Z Probleme bei Darstellung von Brüchen Java Basics - Anfänger-Themen 15
D Bit-Darstellung Gleitkommazahl Java Basics - Anfänger-Themen 2
E JLabel deaktivieren ohne Veränderung der Darstellung Java Basics - Anfänger-Themen 2
F Tabellenähnliche Darstellung Java Basics - Anfänger-Themen 17
F Datentypen 4- bit darstellung Java Basics - Anfänger-Themen 5
DStrohma Alternative Darstellung von Paketen in Eclipse Java Basics - Anfänger-Themen 2
B Effektive Implementierung für Darstellung großer Datenmengen in Jogl Java Basics - Anfänger-Themen 5
E Darstellung der Choice Einträge Java Basics - Anfänger-Themen 4
W Darstellung negativer Zahlen und Mengen von Zahlen Java Basics - Anfänger-Themen 9
A Program zur Darstellung von Zahlen in Java Java Basics - Anfänger-Themen 4
S Darstellung der Ausgabe Java Basics - Anfänger-Themen 8
A GregorianCalendar -Darstellung mit drawString Java Basics - Anfänger-Themen 3
D Darstellung in Swing Java Basics - Anfänger-Themen 6
A JFileChooser Darstellung Java Basics - Anfänger-Themen 3
K Silo Volumenberechnung mit Visueller darstellung Java Basics - Anfänger-Themen 20
S Darstellung von Umlauten Java Basics - Anfänger-Themen 24
P Problem mit Darstellung im Baum Java Basics - Anfänger-Themen 4
T Special Character darstellung Java Basics - Anfänger-Themen 4
G Problem mit der Darstellung (JFreechart) Java Basics - Anfänger-Themen 3
D JFileChooser Darstellung ändern? Java Basics - Anfänger-Themen 4
B Darstellung eines gesperrten JTextField Java Basics - Anfänger-Themen 2
M Illegal Escape Character und keine Darstellung? Java Basics - Anfänger-Themen 7
S Swing-Darstellung in Windows-Optik? Java Basics - Anfänger-Themen 13
M Programm zur Darstellung von Abschreibungen Java Basics - Anfänger-Themen 5
B Grafische Darstellung einer Emailverteilerliste Java Basics - Anfänger-Themen 2
G Problem bei der Darstellung von bestimmten ASCII-Zeichen Java Basics - Anfänger-Themen 4
Rxiiz Objekt aus ComboBox entfernen Java Basics - Anfänger-Themen 4
Mady Daten von JList & Combobox in JTable adden Java Basics - Anfänger-Themen 2
J Eintrag Combobox über einen String auswählen Java Basics - Anfänger-Themen 3
T ComboBox getValue() zeigt null Java Basics - Anfänger-Themen 7
J Array an Combobox übergeben Java Basics - Anfänger-Themen 5
P JavaFX: Verständnisproblem bei ComboBox/ChoiceBox etc. Java Basics - Anfänger-Themen 9
Rubberduck Combobox-Werte in GUI anzeigen Java Basics - Anfänger-Themen 13
J Combobox füllen mit Wertausgabe von andere Klasse Java Basics - Anfänger-Themen 3
D Custom Buttons oder Custom Combobox Java Basics - Anfänger-Themen 30
G Verlassen einer ComboBox erkennen Java Basics - Anfänger-Themen 16
Mosquera Get String Array - ComboBox Java Basics - Anfänger-Themen 10
H Combobox abhängig von RadioButton Java Basics - Anfänger-Themen 4
M ComboBox bestimmte Elemente disablen/ausgrauen Java Basics - Anfänger-Themen 3
T Combobox Wert auslesen und damit weiterrechnen Java Basics - Anfänger-Themen 6
J ComboBox mittels neuer Methode befüllen Java Basics - Anfänger-Themen 3
J Interface Combobox Zustand speichern Java Basics - Anfänger-Themen 1
T Wenn Schaltjahr ist, soll Februar, einen Tag mehr haben, GUI mit combobox Java Basics - Anfänger-Themen 4
J Combobox Objekte Java Basics - Anfänger-Themen 10
kaoZ Input/Output Verzeichnis Inhalt in combobox ausgeben Java Basics - Anfänger-Themen 8
V ComboBox Ergebnisse abhängig von anderer ComboBox - Wie? Java Basics - Anfänger-Themen 7
W Hilfe bei Combobox Java Basics - Anfänger-Themen 9
W GUI Label, ComboBox Java Basics - Anfänger-Themen 4
C Combobox in Abhängigkeit von Spinner Java Basics - Anfänger-Themen 6
D Wert von Combobox in Datei schreiben Java Basics - Anfänger-Themen 2
J Combobox in andere Klasse übergeben Java Basics - Anfänger-Themen 3
B ComboBox(editable) - Text verändern Java Basics - Anfänger-Themen 7
H String aus Combobox auslesen Java Basics - Anfänger-Themen 2
I ComboBox mit Icons + Mehr...! Java Basics - Anfänger-Themen 6
1 Combobox anzeige Java Basics - Anfänger-Themen 7
1 combobox nicht an fesnter angeknüpft Java Basics - Anfänger-Themen 2
1 ComboBox Java Basics - Anfänger-Themen 4
S ComboBox Spielautomat Java Basics - Anfänger-Themen 3
F ComboBox sowie String in einer JTable Spalte Java Basics - Anfänger-Themen 2
M Combobox Problem Java Basics - Anfänger-Themen 3
D ArrayList<String> to Combobox Java Basics - Anfänger-Themen 7
Spin ComboBox Java Basics - Anfänger-Themen 4
J Taschenrechner Combobox Reaktion auf Auswahl Java Basics - Anfänger-Themen 2
M ComboBox und ActionListener Java Basics - Anfänger-Themen 3
S AWT ComboBox Ausgaba Java Basics - Anfänger-Themen 5
K rückgabewert combobox Java Basics - Anfänger-Themen 15
E ComboBox werte auslesen Java Basics - Anfänger-Themen 4
E Combobox Auswahl überprüfen Java Basics - Anfänger-Themen 7
B ComboBox Größe ändern Java Basics - Anfänger-Themen 4
D ComboBox Java Basics - Anfänger-Themen 10
N nicht editierbare combobox davon oberstes element auslesen? Java Basics - Anfänger-Themen 5
H combobox auf leeres Feld prüfen? Java Basics - Anfänger-Themen 10
F ComboBox im Vektor auslesen, Vektor<JComboBox> Java Basics - Anfänger-Themen 6
D ComboBox auf <empty> überprüfen Java Basics - Anfänger-Themen 2
P Item in ComboBox manuell hinzufügen? Java Basics - Anfänger-Themen 3
C Welche Elemente sind in der ComboBox? Java Basics - Anfänger-Themen 3
G Wie doppelte Einträge in ComboBox vermeiden ? Java Basics - Anfänger-Themen 9
P Wert aus JTree in ComboBox setzen? Java Basics - Anfänger-Themen 2
D Combobox mit array abhängig von anderer Combobox mit array Java Basics - Anfänger-Themen 4

Ähnliche Java Themen

Neue Themen


Oben