Ist es möglich, Schaltflächen in der JTable-Zelle zusammen mit Daten hinzuzufügen? Was ich versuche ist, eine Tabelle mit Spalten zu erstellen, die Daten (Nummer) aus der Datenbank anzeigen, und zwei Schaltflächen, um die Zahl innerhalb derselben Zelle zu erhöhen / verringern.
| ID | Menge
| 06 | 2 [+] [-] |
Es wäre etwas wie oben, wenn [+] [-] Knöpfe wären. Wenn ich also [+] drücke, wird die Zahl zu 3 und 1 geändert, wenn [-] gedrückt wird.
Ja, es ist möglich, obwohl es nicht einfach sein wird.
Sie müssen Ihren eigenen benutzerdefinierten CellRenderer und Ihren eigenen erstellen eigene Zelleneditor .
Dies ist eine Probe, die ich in 5 Minuten gemacht habe:
Es ist weit von perfekt, aber zeigt das Konzept.
Hier ist der Quellcode:
%Vor%Hier ist ein Thread, der interessant und hier .
Wie in dem Tutorial besprochen, benötigen Sie beide: a Renderer, um Ihren Wert anzuzeigen, und einen Editor, um Ereignisse aus der bearbeiteten Zelle zu erkennen. In diesem Beispiel ist Component
ein JCheckBox
. Beachten Sie, dass dies eine benutzerdefinierte DataModel
erfordert, die AbstractTableModel
erweitert, um die korrekte Class
für eine bestimmte Spalte zu liefern. Joonas Vorschlag, JSpinner
zu verwenden, ist ein guter, der gut funktioniert.
Ich denke, Sie müssen einen benutzerdefinierten CellRenderer erstellen, wenn Sie etwas anderes als Text (oder Zahlen) in der Zelle anzeigen möchten. Die Aufgabe des CellRenderers besteht darin, alles zu zeichnen, was in der Zelle angezeigt werden soll.
Siehe Table-Renderer-Dokumentation .
In diesem Fall könntest du also eine kleine JPane erstellen, die das Textfeld und die winzigen + und - Tasten enthält - oder nur eine JSpinner-Komponente, wenn du das brauchst, was du brauchst. Ein bisschen schwierig, sicher, aber sollte möglich sein.