Swing Probleme mit JTable

M

Marco01_809

Gast
Hi,

habe einige Fragen bezüglich der JTable:

1.) Gibts eine einfache Möglichkeit jede 2. Zeile mit einem gräulichen Hintergrund zu versehen?

2.) JTable#getColumnModel().setColumnMargin(x) ist mir bekannt, aber dabei wird ja die komplette Zelle verkleinert, so dass auch beim Markieren mit der Maus nur die einzelnen Zelleninhalte den Selection-Foreground-Color abkriegen, sieht dann so aus:
attachment.php

Kann man den Text irgendwie anders, hübsch, auseinanderschieben? Habe auch nichts mit Bordern gefunden im CellRenderer/ColumnModel etc.

3.) Wie kann ich anweisen, Floats/Integer in den Zellen linksbündig zu halten? Benutze ein eigenes TableModel und den AutoRowSorter, irgendwer schiebt die Inhalte ja nach Rechts rüber, sobald TableModel#getColumnClass() einen (Gleitkomma-)zahltyp zurückgibt.

4.) Problem mit dem AutoRowSorter: Kann der Datumsangaben richtig sortieren? Oder muss ich über den Timestamp sortieren, und wie bekomme ich dann das lesbare Datum in die Zelle?

Vielen Dank, Marco.
 

Michael...

Top Contributor
1.) Gibts eine einfache Möglichkeit jede 2. Zeile mit einem gräulichen Hintergrund zu versehen?
Ja, z.B. die prepareRenderer der JTable überschreiben und darin abhängig vom Zeilenindex den Hintergrund setzen.
2.) JTable#getColumnModel().setColumnMargin(x) ist mir bekannt, aber dabei wird ja die komplette Zelle verkleinert, so dass auch beim Markieren mit der Maus nur die einzelnen Zelleninhalte den Selection-Foreground-Color abkriegen, sieht dann so aus:
attachment.php

Kann man den Text irgendwie anders, hübsch, auseinanderschieben? Habe auch nichts mit Bordern gefunden im CellRenderer/ColumnModel etc.
Mittels CellRenderer gibt es da sicherlich verschiedene Möglichkeiten, bin mir jetzt nicht sicher, ob man bei JLabel die Randabstände einstellen kann, ansonsten z.B. durch Verschachtelung von Komponenten, Verwendung einer speziellen Border (z.B. CompoundBorder)... quick & dirty könnte man einfach in der Anzeige durch den CellRenderer dem Wert ein paar Leerzeichen voranstellen.
3.) Wie kann ich anweisen, Floats/Integer in den Zellen linksbündig zu halten? Benutze ein eigenes TableModel und den AutoRowSorter, irgendwer schiebt die Inhalte ja nach Rechts rüber, sobald TableModel#getColumnClass() einen (Gleitkomma-)zahltyp zurückgibt.
Man könnte einfach String.class für diese Spalten zurückgeben, bin mir aber nicht sicher, wie sich das auf den RowSorter auswirkt, ansonsten ist die Lösung hier auch wieder ein CellRenderer.
4.) Problem mit dem AutoRowSorter: Kann der Datumsangaben richtig sortieren? Oder muss ich über den Timestamp sortieren, und wie bekomme ich dann das lesbare Datum in die Zelle?
Da ich maximal mit Java 1.5 programmiere konnte ich bisher nie RowSorter verwenden und kenne mich damit nicht aus. Ist denn im Model ein echtes Datum vom Typ Date o.ä? Dann würde ich erwarten, dass der RowSorter dieses sortieren kann. Die Darstellung muss dann über einen CellRenderer definiert werden.

Wie aus meinen Antworten ersichtlich wird, ist ausschließlich der/die CellRenderer für die Darstellung der Tabelleninhalte zuständig.
 
M

Marco01_809

Gast
Danke,

1.) Gut, dass es keine Methode ala JTable#setEverySecondsRowColor(Color) gibt, hab ich mir fast gedacht :D

2.) Wieso kam Sun/Oracle nicht darauf, das gleich sinnvoll zu implementieren? Ich mein, den muss doch aufgefallen sein, dass das so Schwachsinn ist...

3.) Das Funktioniert leider nicht, dann kommt "126" vor "1029".

4.) Das muss ich noch ausprobieren.

Korrigiert mich, aber bisher finde ich die Tabellenimplementation unter Swing sehr sehr schlecht gemacht, dazu noch total überkompliziert und am Ende hat man davon effektiv gesehen 0.

mfg, Marco.
 

Michael...

Top Contributor
zu 2) wollte damit nicht sagen, dass es da einfache Möglichkeiten gibt. Aber grundsätzlich kann jeder mittels CellRenderer die Darstellung der Zelle festlegen.
zu 3) war ja meine Vermutung, deswegen CellRenderer

Korrigiert mich, aber bisher finde ich die Tabellenimplementation unter Swing sehr sehr schlecht gemacht, dazu noch total überkompliziert und am Ende hat man davon effektiv gesehen 0.

In wie fern? JTable ist zwar recht komplex, aber das hat auch seinen Grund immerhin kann so ein Tabelle ja mehrer Millionen Werte beinhalten.
 

Marco13

Top Contributor
Korrigiert mich, aber bisher finde ich die Tabellenimplementation unter Swing sehr sehr schlecht gemacht, dazu noch total überkompliziert und am Ende hat man davon effektiv gesehen 0.

Das hatte ich übersehen, hätte aber was ähnliches gefragt. JTable ist die komplexeste und komplizierteste Klasse in Swing, und wer schonmal versucht hat, einen klickbaren Button in eine JTable zu packen, weiß, wie spaßig es ist, in den Innereien von CellEditoren rumwühlen zu dürfen... Die Methode "showMyHereogeneousDataInTheWayThatIwantAndLetItAutomaticallyHaveTheFeaturesThatINeedAndTheInteractionThatIPersonallyFindIntuitive()" gibt's eben leider noch nicht. Mit einer Standard-JTable und ein paar eigenen CellRenderern kann man schon SO enrom viel erreichen, dass man sich fragen muss, was man daran noch "besser" machen könnte.... Aber... polemisch: Schreib' dir doch deine eigene, bessere JTable :pueh: ;)
 
M

Marco01_809

Gast
Das hatte ich übersehen, hätte aber was ähnliches gefragt. JTable ist die komplexeste und komplizierteste Klasse in Swing, und wer schonmal versucht hat, einen klickbaren Button in eine JTable zu packen, weiß, wie spaßig es ist, in den Innereien von CellEditoren rumwühlen zu dürfen... Die Methode "showMyHereogeneousDataInTheWayThatIwantAndLetItAutomaticallyHaveTheFeaturesThatINeedAndTheInteractionThatIPersonallyFindIntuitive()" gibt's eben leider noch nicht. Mit einer Standard-JTable und ein paar eigenen CellRenderern kann man schon SO enrom viel erreichen, dass man sich fragen muss, was man daran noch "besser" machen könnte.... Aber... polemisch: Schreib' dir doch deine eigene, bessere JTable :pueh: ;)

Ok, das war vielleicht ein vorschnelles Urteil, aber der Effekt von setMargin() ist atm wirklich etwas unnütz.
Ich werde mich mal in den CellRenderer einarbeiten und sehen ob ich der JTable doch was abgewinnen kann. Und eine eigene Table lass ich vorerst lieber sein :)
Ich schätze bis man sich mit allen Swing-Widgets auskennt, braucht ne längere Einarbeitungszeit, viele Möglichkeiten ziehen nun auch Komplexität mit sich.

Und vielen Dank an die Helfer ;)
 

Marco13

Top Contributor
Zum Glück gibt es für Swing SO gute Introductions und Tutorials, wie für keine(?) andere GUI-API: Einfach [c]how to Klassenname[/c], z.b. [c]how to JTable[/c] oder [c]how to JButton[/c] in google eintippen, und man landet bei sowas wie How to Use Tables (The Java™ Tutorials > Creating a GUI With JFC/Swing > Using Swing Components) - Anhand der direkt compilier- und auführbaren Beispiele dort kann man sich i.A. recht schnell in die relevanten Teile einarbeiten (man braucht das eben nicht alles zu wissen - wenn man's braucht, schaut man nach, wie's geht). Aber nochmal: JTable ist schon sehr komplex, weil sie eben auch enorm viele Mglichkeiten bietet...
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
N JTable probleme AWT, Swing, JavaFX & SWT 5
T JTable Graphik probleme AWT, Swing, JavaFX & SWT 3
D Probleme bei Übertrag von ArrayList in Jtable AWT, Swing, JavaFX & SWT 2
K Probleme bei sortieren von jTable AWT, Swing, JavaFX & SWT 5
L Probleme beim Refresh von JTable AWT, Swing, JavaFX & SWT 7
G JTable Multiple Row Header Example - Probleme mit der Höhe der Zellen AWT, Swing, JavaFX & SWT 4
Z JTable: Speichern probleme AWT, Swing, JavaFX & SWT 12
T JTable / RowSorter macht große Probleme AWT, Swing, JavaFX & SWT 2
K JButton auf JPanel in JTable (Darstellungs-/Event-Probleme) AWT, Swing, JavaFX & SWT 16
S JTable Probleme wenn ich Zelle verlasse AWT, Swing, JavaFX & SWT 4
P Anfänger Probleme mit JTable bitte um Rat! AWT, Swing, JavaFX & SWT 5
G Probleme mit JTable und MouseWheelListener AWT, Swing, JavaFX & SWT 3
I Drei Fragen/Probleme mit einer JTable AWT, Swing, JavaFX & SWT 9
K Probleme mit Fixed JTable AWT, Swing, JavaFX & SWT 4
G JTable mit JTextAreaEditor - Probleme bei langen Zeilen AWT, Swing, JavaFX & SWT 4
M Probleme mit JTable und DB-Inhalt AWT, Swing, JavaFX & SWT 6
B Probleme mit JTable AWT, Swing, JavaFX & SWT 3
D Performance Probleme Jtable AWT, Swing, JavaFX & SWT 4
C Probleme mit JTable.setDefaultRenderer() AWT, Swing, JavaFX & SWT 5
O Probleme mit header von JTable AWT, Swing, JavaFX & SWT 6
F JTable mit Checkbox macht Probleme AWT, Swing, JavaFX & SWT 4
H Probleme JTable zu füllen AWT, Swing, JavaFX & SWT 4
M Probleme mit JTable neuzeichnen! AWT, Swing, JavaFX & SWT 2
G Keine Column-Names in JTable und Probleme mit getValueAt AWT, Swing, JavaFX & SWT 9
E Probleme mit JTable AWT, Swing, JavaFX & SWT 3
D Probleme mit JTable AWT, Swing, JavaFX & SWT 6
G Probleme beim Füllen einer JTable AWT, Swing, JavaFX & SWT 2
Juelin Probleme bei Stage.close() AWT, Swing, JavaFX & SWT 23
XWing Swing Image anzeigen und probleme mit klassen AWT, Swing, JavaFX & SWT 3
E repaint Probleme AWT, Swing, JavaFX & SWT 13
mananana Mögliche probleme die in einer GUI passieren Können AWT, Swing, JavaFX & SWT 6
S GridBagLayout - Probleme mit Bilderanzeige AWT, Swing, JavaFX & SWT 3
I Probleme beim Drucken auf einen PDF-Drucker AWT, Swing, JavaFX & SWT 8
J Probleme mit idividueller Tablecell AWT, Swing, JavaFX & SWT 0
D JavaFX Probleme beim nachtäglichen hinzufügen der jfx dependency AWT, Swing, JavaFX & SWT 7
J Probleme mit InputDialog AWT, Swing, JavaFX & SWT 4
D JavaFX TextArea Probleme bei langen Zeilen AWT, Swing, JavaFX & SWT 1
G JavaFX SplitPane Anwendung - Controller Probleme AWT, Swing, JavaFX & SWT 5
K Probleme bei der Erstellung und Ausführung einer Jar Datei AWT, Swing, JavaFX & SWT 2
B Probleme Action Listener Taschenrechner AWT, Swing, JavaFX & SWT 27
pph080560 JavaFX Probleme mit FX AWT, Swing, JavaFX & SWT 3
M Probleme mit OpenJDK AWT, Swing, JavaFX & SWT 6
B 2D-Grafik paintcomponent Probleme beim zeichnen AWT, Swing, JavaFX & SWT 10
B Swing Probleme mit dem Layout AWT, Swing, JavaFX & SWT 1
L JavaFX Probleme beim Installieren JavaFX11 / JavaFX12 -- Eclipse 2019-03 AWT, Swing, JavaFX & SWT 3
Fiedlerdan Image-Pfad Probleme nach Export aus Eclipse AWT, Swing, JavaFX & SWT 31
H JFreeChart - DemoDataSetFactory Probleme AWT, Swing, JavaFX & SWT 1
H LayoutManager Probleme mit Positionierung/Abständen der Komponenten AWT, Swing, JavaFX & SWT 14
A Probleme mit gridheight (GridBagLayout) AWT, Swing, JavaFX & SWT 6
U Opaque Probleme AWT, Swing, JavaFX & SWT 3
H JavaFX Probleme Beim Wechseln der scene als .fxml AWT, Swing, JavaFX & SWT 7
F JavaFX Probleme beim automatischen Konvertieren AWT, Swing, JavaFX & SWT 4
S Probleme mit JComboboxen(?) AWT, Swing, JavaFX & SWT 18
S Swing Probleme mit MigLayout AWT, Swing, JavaFX & SWT 2
C Probleme mit createImage AWT, Swing, JavaFX & SWT 1
J Probleme mit contex Menu (javafx) AWT, Swing, JavaFX & SWT 1
J Probleme bei GameofLife AWT, Swing, JavaFX & SWT 24
S JavaFx - Button ActionEvent Probleme AWT, Swing, JavaFX & SWT 3
T Swing Probleme mit repaint() bzw. JScrollPane AWT, Swing, JavaFX & SWT 7
ImperatorMing JavaFX Probleme mit WindowEvent AWT, Swing, JavaFX & SWT 0
ImperatorMing JavaFX Probleme mit WindowEvent AWT, Swing, JavaFX & SWT 5
J LayoutManager GridBagLayout, probleme mit Anordnung von Objekten AWT, Swing, JavaFX & SWT 6
T Java FX Probleme beim befüllen eines Tableviews AWT, Swing, JavaFX & SWT 5
S AWT Probleme beim Zeichnen AWT, Swing, JavaFX & SWT 3
A Swing Probleme mit dem adden von JButtons zur JScrollPane AWT, Swing, JavaFX & SWT 2
D Swing Probleme mit dem Resizing AWT, Swing, JavaFX & SWT 7
G Probleme mit TextArea AWT, Swing, JavaFX & SWT 5
G JFrame Probleme AWT, Swing, JavaFX & SWT 2
K Probleme beim JPasswordField AWT, Swing, JavaFX & SWT 11
G Cardlayout Refresh Probleme AWT, Swing, JavaFX & SWT 2
J Swing Probleme mit ListSelectionListener(), Inhalte der JList werden gelöscht? AWT, Swing, JavaFX & SWT 6
D JavaFX Probleme bei Service-Klasse beim ändern der GUI AWT, Swing, JavaFX & SWT 8
K Probleme beim zeichnen mit paintComponent() AWT, Swing, JavaFX & SWT 1
M JButton Probleme AWT, Swing, JavaFX & SWT 14
L Probleme mit Programm AWT, Swing, JavaFX & SWT 13
blazingblade komischerweise probleme mit jtextfield.gettext() AWT, Swing, JavaFX & SWT 9
Xanny 2D-Grafik Beginner! Probleme mit Swing, Gprahics class und paint AWT, Swing, JavaFX & SWT 13
Sin137 LayoutManager GridBagLayout Probleme AWT, Swing, JavaFX & SWT 6
H Netbeans Designer: Probleme mit JPanel und JFrame AWT, Swing, JavaFX & SWT 2
M Swing Probleme mit Frame.pack() AWT, Swing, JavaFX & SWT 1
C Java FX Probleme beim Schließen einer Stage AWT, Swing, JavaFX & SWT 11
M Swing JProgressbar und Outoputstream probleme AWT, Swing, JavaFX & SWT 2
S Swing Probleme mit transparenz der Hintergrundfarbe und JRadioButtons AWT, Swing, JavaFX & SWT 2
Z Probleme mit JPanel's AWT, Swing, JavaFX & SWT 6
T Probleme mit Anzeige von Elementen im JPanel AWT, Swing, JavaFX & SWT 1
Shams Probleme bei dem Hinzufügen von Komponenten zu einem JFrame AWT, Swing, JavaFX & SWT 3
A Swing Probleme mit JScrollPane AWT, Swing, JavaFX & SWT 6
M Layout-Probleme unter Swing AWT, Swing, JavaFX & SWT 5
H Swing Probleme beim erstellen eines neuen Objektes durch einen Button AWT, Swing, JavaFX & SWT 10
J JavaFX JavaFX Probleme bei der Anzeige von Text AWT, Swing, JavaFX & SWT 18
A Probleme mit TilledBorder("***") AWT, Swing, JavaFX & SWT 4
F Bildschirmschoner Probleme mit Preview AWT, Swing, JavaFX & SWT 8
X Panel Probleme (Tetris) AWT, Swing, JavaFX & SWT 8
B Probleme bei ImageIO.read (?!) AWT, Swing, JavaFX & SWT 9
P JFrame Location-/Size-Probleme AWT, Swing, JavaFX & SWT 5
U LayoutManager Probleme mit Layouts AWT, Swing, JavaFX & SWT 5
C 3 kleine Probleme... AWT, Swing, JavaFX & SWT 13
L NullpointerException und Probleme mit repaint() AWT, Swing, JavaFX & SWT 11
A Probleme mit 2 JFrames in einem Programm AWT, Swing, JavaFX & SWT 7
K LayoutManager Probleme mit 2 Komponenten AWT, Swing, JavaFX & SWT 9

Ähnliche Java Themen


Oben