Swing JXTable, vom CellRenderer gerendertes Value holen.

Status
Nicht offen für weitere Antworten.

jambusa

Mitglied
Hallo,

Mein Szenario:

Ich habe eine JXTable und einen eigenen CellRenderer, der CellRenderer macht aus einem Integer Wert ein bestimmten String. Die Anzeige in der JXTable klappt auch super und der Integer wird in einen String gerendert. Jetzt möchte ich mit dem gerenderten Wert arbeiten und mir den Wert über die JXTable holen, aber das funktioniert nicht.

Frage:
Weiß jemand ob es möglich ist den vom CellRenderer gerenderten Wert abzuholen ?

jXTable.getStringAt( row, column ) liefert immer nur das original Value zurück wie jXTable.getValueAt( row, column ).

Danke schon mal !
 

Ebenius

Top Contributor
Der Renderer kann den String eigentlich nicht zur Verfügung stellen. Schließlich ist es nur Zufall, dass Dein Renderer einen String erstellt; andere Renderer zeichnen Bilder, malen geometrische Figuren, tanzen Boogie.

Ich würde in diesem Fall einen Converter bauen (zum Beispiel eine Ableitung von der TableStringConverter-Klasse und diese sowohl im Renderer als auch im RowSorter als auch an der Stelle wo Du den Wert selbst benötigst benutzen.

Ebenius
 

Michael...

Top Contributor
Man könnte sich eine eigene Klasse erstellen, die einen Integer entgegennimmt und auf desen Basis einen Membervariable setzt. Dann überschreibt man in die toString()-Methode und gibt diese Membervariable zurück. Das aus der Klasse erzeugte Objekt übergibt man dann anstelle des Integers an das TableModel.

Und wenn der Renderer nur für den Zweck der "Wandlung" eines Integers in ein spezifischen String verwendet wurde, kann man ihn ganz weglassen.

Ich kenne JXTable zwar nicht, aber nehme mal an, dass die Tabelle in dem Fall ähnlich wie JTable arbeitet.

Hier ein Bsp. für der Klasse
Java:
class SpecialObject  {
	private int intValue;
	private String stringValue;
	
	public SpecialObject(int i) {
		this.intValue = i;
		switch(i) {
		case 0: this.stringValue = "Hallo"; break;
		case 1: this.stringValue = "Hello"; break;
		case 2: this.stringValue = "Hola"; break;
		default: this.stringValue = "????";
		} 
	}
	public String toString() {
		return this.stringValue;
	}
}
 

Ebenius

Top Contributor
Man könnte sich eine eigene Klasse erstellen, die einen Integer entgegennimmt und auf desen Basis einen Membervariable setzt. Dann überschreibt man in die toString()-Methode und gibt diese Membervariable zurück. Das aus der Klasse erzeugte Objekt übergibt man dann anstelle des Integers an das TableModel.
Das halte ich für ungeschickt. Die Darstellung des Integer-Wertes ist Aufgabe der View und gehört somit in den Renderer. Zwei verschiedene Tabellen können den Wert des selben Modells unterschiedlich darstellen wollen. In unterschiedlichen Ländereinstellungen sind die Formatierungen für numerische Werte unterschiedlich, etc.

Ebenius
 

Kleopatra

Mitglied
Hallo,


jXTable.getStringAt( row, column ) liefert immer nur das original Value zurück wie jXTable.getValueAt( row, column ).

Danke schon mal !

Dein Renderer muß StringValue imlementieren, damit das funktioniert. Am einfachsten schaltest Du komplett auf SwingX Renderer um, die Bauklötzchen sind schön klein und wiederverwertbar (auch in JXList, JXTree)

Java:
StringValue sv = new StringValue() {
   String getString(Object value) {
       /// your conversion code
   }
};
// XX = table, list tree
XXCellRenderer = new DefaultXXRenderer(sv)

HTH
Jeanette

Übrigens: wer keine Ahnung von einem spezifischen Framework hat, muß nicht anworten, darf auch still bleiben ;-)
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
S Swing Wie JXTable importieren AWT, Swing, JavaFX & SWT 2
B Swing BalloonTip erscheint nicht in den ersten Zeilen einer JXTable AWT, Swing, JavaFX & SWT 4
B JXTable Invalid range Problem AWT, Swing, JavaFX & SWT 5
P Swing JXTable RowSorter AWT, Swing, JavaFX & SWT 12
B JXTable AWT, Swing, JavaFX & SWT 2
N Swing [JXTable] getColumnIndex mit dynamischen TableHeader AWT, Swing, JavaFX & SWT 4
S JXTable Header Tooltipps AWT, Swing, JavaFX & SWT 4
martin82 Swing JXTable gefilterte Zeilen AWT, Swing, JavaFX & SWT 4
A JXTable jede zweite Zeile einfärben AWT, Swing, JavaFX & SWT 4
G Frage zu SwingX JXTable und ColumnControl AWT, Swing, JavaFX & SWT 4
T JXTable AWT, Swing, JavaFX & SWT 5
T Swing JTable cellRenderer mit jpg Hintergrundfarbe lässt sich nicht ändern. AWT, Swing, JavaFX & SWT 1
N AWT jTable CellRenderer AWT, Swing, JavaFX & SWT 6
L Swing CellRenderer für einzelne Zellen? AWT, Swing, JavaFX & SWT 5
G Border der Komponente bei Table CellRenderer überschreiben AWT, Swing, JavaFX & SWT 0
Developer_X Java JTable - Combobox + Checkbox - Cellrenderer + Editor AWT, Swing, JavaFX & SWT 3
S Verständnisproblem mit CellRenderer AWT, Swing, JavaFX & SWT 1
M Swing Jtable CellRenderer Parameter uebergeben AWT, Swing, JavaFX & SWT 4
K Swing JList und veränderte CellRenderer AWT, Swing, JavaFX & SWT 8
G JComboBox mit CellRenderer (Auswahl) AWT, Swing, JavaFX & SWT 11
J JTable: Problem bei CellRenderer AWT, Swing, JavaFX & SWT 3
S Swing Zelle einer JTable hervorheben (ohne CellRenderer) AWT, Swing, JavaFX & SWT 3
Spin CellRenderer Probleme bei JList AWT, Swing, JavaFX & SWT 4
S Swing Jlist - CellRenderer/ Selektion AWT, Swing, JavaFX & SWT 2
B JTable CellRenderer AWT, Swing, JavaFX & SWT 5
D Swing JList, CellRenderer und Model AWT, Swing, JavaFX & SWT 6
C Wieso funktionert der CellRenderer nicht? AWT, Swing, JavaFX & SWT 2
J CellRenderer einzelne zellen Hintergrund AWT, Swing, JavaFX & SWT 9
hdi Swing JTable: Mein CellRenderer ist ein Performance-Killer? AWT, Swing, JavaFX & SWT 7
E Swing JTable mit CellRenderer AWT, Swing, JavaFX & SWT 7
J JList CellRenderer Null-Layoutpanel AWT, Swing, JavaFX & SWT 4
? Tabelle formatieren - auch ohne CellRenderer? AWT, Swing, JavaFX & SWT 6
M CellEditor und CellRenderer für eigene Klasse AWT, Swing, JavaFX & SWT 4
H JTable und CellRenderer AWT, Swing, JavaFX & SWT 2
M CellRenderer in JTable AWT, Swing, JavaFX & SWT 11
D JList Cellrenderer fügt mehrfach ein AWT, Swing, JavaFX & SWT 2
G JTable, TableModel und CellRenderer AWT, Swing, JavaFX & SWT 3
K Verständnisfrage zum CellRenderer AWT, Swing, JavaFX & SWT 4
G [Problem] CellRenderer und ActionCommand AWT, Swing, JavaFX & SWT 5
K JTable - warum funktioniert mein CellRenderer nicht? AWT, Swing, JavaFX & SWT 9
G CellRenderer, der einige ImageIcons aneinanderreiht AWT, Swing, JavaFX & SWT 5
G JTable: Zellenhöhe mit neuem CellRenderer & Editor AWT, Swing, JavaFX & SWT 17
G CellRenderer funkt net AWT, Swing, JavaFX & SWT 5
T CellRenderer funzt net AWT, Swing, JavaFX & SWT 20
F JTable CellRenderer über boolean AWT, Swing, JavaFX & SWT 12
M Krieg keine CellRenderer Methode hin :( AWT, Swing, JavaFX & SWT 12
C JTable mit JPanel als CellRenderer AWT, Swing, JavaFX & SWT 2
G JTable CellRenderer-Problem AWT, Swing, JavaFX & SWT 4

Ähnliche Java Themen


Oben