TableCellRenderer + JComboBoxen

Status
Nicht offen für weitere Antworten.
B

bygones

Gast
Hi,

so, nun beschäftige ich auch mal (richtig) mit JTables - und stoß schon ans Ende...

Ich habe eine Tabelle mit drei unterschiedlichen Arten von Spalten. In der ersten soll man einen Text eingeben können, die anderen beiden sollen zwei untersch. JComboboxen sein. Diese Arten von Spalten wiederholen sich in der Tabelle öfters.

Ok. ich habe eine Klasse die JCombobox erweitert und den TableCellRenderer implementiert - nur habe ich keine Ahnung was ich in den get.... Methode reinschreiben muss:

Code:
public class ComboRenderer extends JComboBox implements TableCellRenderer {
	public ComboRenderer(Object[] items) {
		super(items);
	}

	/* (non-Javadoc)
	 * @see javax.swing.table.TableCellRenderer#getTableCellRendererComponent(javax.swing.JTable, java.lang.Object, boolean, boolean, int, int)
	 */
	public Component getTableCellRendererComponent(
		JTable table,
		Object value,
		boolean isSelected,
		boolean hasFocus,
		int row,
		int column) {
		setSelectedItem(value);
		return this;
	}
}

In meiner Table Klasse will ich dann natürlich die Renderer setzen.
Code:
TableColumn column;
		for (int i = 0; i < getModel().getColumnCount(); i++) {
			column = getColumnModel().getColumn(i);
			switch (i % 3) {
				case 0 :
					if (i == 0) {
						column.setMinWidth(85);
					}
					else {
                                                // erste checkbox spalte
						column.setWidth(12);
						column.setCellRenderer(new ComboRenderer(roomItems));
						column.setCellEditor(new DefaultCellEditor(roomBox));
					}
					break;
				case 1 :
                                        // eingabe feld spalte
					column.setMinWidth(90);
					break;
				case 2 :
                                        // zweite spalte
					column.setWidth(15);
					column.setCellRenderer(new ComboRenderer(feeItems));
					column.setCellEditor(new DefaultCellEditor(feeBox));
			}
		}
Wenn ich keinen CellEditor hinzufüge, erscheinen die JComboboxen gar nicht. Nun kann ich zwar die Boxen auswählen, er übernimmt mir aber nicht den ausgewählten Wert ?! Außerdem kann ich durch Doppelklick auf die Boxen sie zum verschwinden bringen und Text in das Feld schreiben, in dem eigentlich die Combobox sein sollte....

Was mache ich falsch bzw. wie mach ichs richtig ?

THX
 
B

Beni

Gast
Der Renderer übernimmt die Darstellung, wenn der User nur anschauen kann (das normale Verhalten einer Tabellenzelle).
Der Editor übernimmt die Darstellung, wenn der User mit der Zelle interagieren kann (das ist immer nur eine (oder keine) Zelle pro Table)

Du musst einen Editor implementieren. Durch einen Doppelklick (Einfachklick lässt sich sicher auch irgendwo einstellen) wird dieser aktiviert, und du kannst die JComboBox darstellen lassen.
Studier :### mal die API zum Editor.

Für die "normalen" Zellen kannst du dann einen normalen DefaultTableCellRenderer einsetzen (es sei denn, du willst mehr als nur Text darstellen).

mfg Beni
 
B

bygones

Gast
THX - werde ich mal probieren !

D.h. also ich brauch keinen Renderer, ich brauch nen CellEditor ?! Na dann :)
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
B TableCellRenderer rendert Integer/Boolean Felder nicht AWT, Swing, JavaFX & SWT 4
M Swing TableCellRenderer elegant anpassen AWT, Swing, JavaFX & SWT 3
D Swing Mit TableCellRenderer einzelne Zellen markieren AWT, Swing, JavaFX & SWT 3
O Swing TableCellRenderer und JComboBox AWT, Swing, JavaFX & SWT 4
C Swing TableCellRenderer: setText() vs. setIcon() AWT, Swing, JavaFX & SWT 5
E Swing TableCellRenderer für alle Splaten setzen?! AWT, Swing, JavaFX & SWT 3
M gleicher TableCellRenderer für mehrere unterschiedliche Tabellen AWT, Swing, JavaFX & SWT 5
A Swing TableCellRenderer ändert die Zeilenfarbe zu spät AWT, Swing, JavaFX & SWT 3
J Swing JTable, eigener TableCellRenderer Keine Anzeige in den Zellen AWT, Swing, JavaFX & SWT 8
J NullPointerException bei Benutzung vom TableCellRenderer AWT, Swing, JavaFX & SWT 3
U TableCellRenderer: Problem mit Timestamp/Date AWT, Swing, JavaFX & SWT 2
U TableCellRenderer UND prepareRenderer AWT, Swing, JavaFX & SWT 12
C Swing TableCellRenderer AWT, Swing, JavaFX & SWT 10
U TableCellRenderer und setBackground AWT, Swing, JavaFX & SWT 20
H Swing TableCellRenderer für verschiedene Spalten AWT, Swing, JavaFX & SWT 11
C Swing Problem mit TableCellRenderer in Verbindung mit TableRowSorter AWT, Swing, JavaFX & SWT 2
R JTable - TableCellRenderer AWT, Swing, JavaFX & SWT 3
R JTable - TableCellRenderer - BufferedImage AWT, Swing, JavaFX & SWT 9
S TableCellRenderer: JLabel-Background in JPanel AWT, Swing, JavaFX & SWT 7
R JTable mit TableCellRenderer AWT, Swing, JavaFX & SWT 10
R JTable - TableCellRenderer AWT, Swing, JavaFX & SWT 2
D TableCellRenderer rendert einfach nicht! AWT, Swing, JavaFX & SWT 4
S TableCellRenderer setForeground AWT, Swing, JavaFX & SWT 5
I Problem mit TableCellRenderer AWT, Swing, JavaFX & SWT 3
K TableCellRenderer Problem AWT, Swing, JavaFX & SWT 3
F TableCellRenderer wie umsetzen? AWT, Swing, JavaFX & SWT 2
D JTable TableCellRenderer AWT, Swing, JavaFX & SWT 2
J JTable und TableCellRenderer AWT, Swing, JavaFX & SWT 2
G TableCellRenderer Background variiert darstellen AWT, Swing, JavaFX & SWT 3
P TableCellRenderer mit einem TableRowSorter AWT, Swing, JavaFX & SWT 4
D TableCellRenderer PRoblem AWT, Swing, JavaFX & SWT 3
G TableCellRenderer soll ganze ausgewählte Zeile markieren AWT, Swing, JavaFX & SWT 2
S TableCellRenderer deaktivieren AWT, Swing, JavaFX & SWT 13
J TableCellRenderer AWT, Swing, JavaFX & SWT 5
S JTree mal anders (TableCellRenderer) AWT, Swing, JavaFX & SWT 6
S TableCellRenderer, Performance AWT, Swing, JavaFX & SWT 9
M Objekt in TableCellRenderer packen, warum ein Fehler? AWT, Swing, JavaFX & SWT 2
T TableCellRenderer Problem AWT, Swing, JavaFX & SWT 6
I Hilfe bei dem Erstellen einer SQL Abfrage aus gewählten JComboBoxen AWT, Swing, JavaFX & SWT 5
R Auswahl mehrerer JComboBoxen verknüpfne AWT, Swing, JavaFX & SWT 17
S Probleme mit JComboboxen(?) AWT, Swing, JavaFX & SWT 18
it_is_all Swing Mehrere JComboBoxen - wie die versch. Boxen mit ItemStateChange auslesen? AWT, Swing, JavaFX & SWT 3
sandaime Swing 3 JComboBoxen ausgelesen Elemente einzel ausgeben AWT, Swing, JavaFX & SWT 6
A Swing zwei JComboBoxen miteinander vergleichen und anschließend Button umwandeln AWT, Swing, JavaFX & SWT 7
I Wie mehrere JComboBoxen in Abhängigkeit einer anderen Box ändern? AWT, Swing, JavaFX & SWT 8
G JComboBoxen synchronisieren AWT, Swing, JavaFX & SWT 8
M auslesen mehrerer JComboBoxen funktioniert nicht AWT, Swing, JavaFX & SWT 9
F JTable Spalte sortieren mit lauter JComboboxen ? AWT, Swing, JavaFX & SWT 15
G Zwei JComboBoxen AWT, Swing, JavaFX & SWT 5
S mehrere JComboBoxen und ActionListener AWT, Swing, JavaFX & SWT 7
H JComboBoxen dynamisch erzeugen AWT, Swing, JavaFX & SWT 3

Ähnliche Java Themen

Neue Themen


Oben