JComboBox Item-Auswahl in JTable

MSJones

Mitglied
Ich habe in einer JTable eine PComboBox aus der PSwing-Library PSwing Java Swing Components als Editor.

Alleine funktioniert die PComboBox so, daß ich eine Auswahl aus den vorhandenen Items treffen kann, indem ich:
- die Werte per Maus aus der DropdownBox auswähle
- die Werte per Tastatur ins Editorfeld eingebe (hier werden nur Zeichen akzeptiert, mit denen noch mindestens ein Eintrag in den ComboBox-Items verfügbar ist.) Nicht vollständige Werte werden automatisch mit dem ersten Fund einer Binären Suche ergänzt. Schwierig zu erklären. Am besten einfach hier mal ausprobieren PSwing Java Swing Components

Nun möchte ich diese Funktionalität auf gerne in meinem TableCellEditor benutzen.
Hab dazu auch mal Testklassen geschrieben:
1. Frame mit der JTable:
Java:
package combobox_in_table;

import java.awt.Dimension;

import javax.swing.DefaultCellEditor;
import javax.swing.JFrame;
import javax.swing.JScrollPane;
import javax.swing.JTable;
import javax.swing.table.DefaultTableModel;

import com.pallas.swing.pcombobox.PComboBox;

public class Table extends JFrame
{
	// Konstanten:
	private static final long serialVersionUID = 1941793965489302399L;
	private PComboBox combo = new PComboBox(new String[] {
		"Sortierung1",
		"Sortierung2",
		"Sortierung3",
		"Test1",
		"Test2",
		"Test3"});

	// Attribute:
	public static void main (String[] args)
	{
		Table table = new Table();
		table.start();
	}
	
	public void start()
	{
		DefaultTableModel model1 = new DefaultTableModel(new String[]{"header1", "header2", "header3"}, 0);

		JTable tbl = new JTable(model1);
		tbl.setAutoResizeMode(JTable.AUTO_RESIZE_OFF);
		tbl.createDefaultColumnsFromModel();

		model1.addRow(new String[]{"TestCombo1","TestCombo2","TestCombo3"});

		//to select a column where was the combobox, in this case, the column 0
		tbl.getColumnModel().getColumn(0).setCellEditor(new MyComboBoxEditor(combo));
		tbl.getColumnModel().getColumn(1).setCellEditor(new DefaultCellEditor(combo));
		tbl.getColumnModel().getColumn(2).setCellEditor(new DefaultCellEditor(combo));

		tbl.setPreferredSize(new Dimension(400,200));
		add(new JScrollPane(tbl));
		pack();
		setVisible(true);
	}
}

2. Meinen ComboBoxEditor
Java:
package combobox_in_table;

import java.awt.Component;

import javax.swing.AbstractCellEditor;
import javax.swing.JTable;
import javax.swing.table.TableCellEditor;


import com.pallas.swing.pcombobox.PComboBox;

public class MyComboBoxEditor extends AbstractCellEditor implements TableCellEditor
{
	private static final long serialVersionUID = -3098925604828480551L;

	private PComboBox delegate = new PComboBox();
	
	public MyComboBoxEditor(PComboBox cb)
	{
		delegate = cb;
	}

	@Override
	public Object getCellEditorValue()
	{
		// TODO Auto-generated method stub
		return delegate.getSelectedItem();
	}

	@Override
	public Component getTableCellEditorComponent(JTable table, Object value, boolean isSelected, int rowIndex, int colIndex)
	{
		//delegate.setSelectedItem(value);
		return delegate;

	}
}

Dummerweise spielt die PComboBox hier total verrückt und läßt mich mit der Tastatur nur den zuletzt selectierten Eintrag auswählen.
Das Verhalten sieht so aus, als ob die Itemliste leer wäre und die Auswahl wird abgebrochen wird, anstatt aus der Itemliste auszuwählen.

Kann mir da wer sagen, was ich falsch mache, bzw. was ich ändern muß?

Muß nicht unbedingt eine PComboBox sein, normale JComboBox würds im Moment auch mal machen mit der Auflage, daß ich händisch was eingeben kann und die DropDownliste automatisch zum ersten Vorkommen springt.
(Bsp.: Eingabe: De --> In der DropDownListe wird automatisch "Deutsch" selectiert.)
 

DanZ

Bekanntes Mitglied
"buildIndex()
Must be called after all items have been added to combo box, or after a new item is added."

Funktioniert dann leider immer noch nicht richtig, aber wenigstens ein bisschen besser ;)

Edit: Wenn du bei allen Columns deinen eignen Celleditor nimmst und nicht den DefaultCellEditor dann funktioniert es tadellos(und natürlich das buildIndex() aufrufen im Konstruktor). Der DefaultCellEditor haut nämlich einen ActionListener in die ComboBox, der von der PComboBox etwas unkonventionell gebraucht wird.
 
Zuletzt bearbeitet:
Ähnliche Java Themen
  Titel Forum Antworten Datum
R Swing Durch JComboBox-Item eine TextArea aktualisieren AWT, Swing, JavaFX & SWT 2
D Swing Erstes Item einer JCombobox in JTable anzeigen AWT, Swing, JavaFX & SWT 2
I JComboBox gibt bei ausgewählten ITem NullPointer an... AWT, Swing, JavaFX & SWT 3
M Item in JComboBox umbenennen AWT, Swing, JavaFX & SWT 5
D JComboBox jedes Item mit einer anderen Farbe AWT, Swing, JavaFX & SWT 10
M Swing jcombobox als jtable-editor: neues Item auswählen AWT, Swing, JavaFX & SWT 4
S Item einer JComboBox soll variabel sein AWT, Swing, JavaFX & SWT 3
woezelmann JComboBox Item nicht auswählbar machen AWT, Swing, JavaFX & SWT 4
M JComboBox - zweizeiliges Item AWT, Swing, JavaFX & SWT 2
T JCombobox betimmtes Item auswhälen AWT, Swing, JavaFX & SWT 3
B JComboBox Item auswählen AWT, Swing, JavaFX & SWT 11
m@nu JComboBox & ItemListener: per Code 1. Item wählen AWT, Swing, JavaFX & SWT 2
Paule selektiertes Item einer JComboBox herausfinden AWT, Swing, JavaFX & SWT 3
hannibalstgt Fehler bei JCOMBOBOX GUI Anzeige AWT, Swing, JavaFX & SWT 4
L jComboBox Actionlistener wird beim erstmaligen Befüllen getriggert AWT, Swing, JavaFX & SWT 7
N Keylistener & JComboBox AWT, Swing, JavaFX & SWT 5
R JComboBox abfragen AWT, Swing, JavaFX & SWT 1
Esquid If Befehl bei JComboBox AWT, Swing, JavaFX & SWT 3
kodela Swing Element einer JComboBox ausgrauen AWT, Swing, JavaFX & SWT 3
D JComboBox Strings aus JTextFields zuordnen AWT, Swing, JavaFX & SWT 2
F JComboBox und Model AWT, Swing, JavaFX & SWT 10
I Editierbare JComboBox, die nur Ganzzahlen als Eingabewerte zulässt AWT, Swing, JavaFX & SWT 3
Drachenbauer Swing Wie ändere ich die Farbe der Konturen von jButton und jCombobox? AWT, Swing, JavaFX & SWT 18
Drachenbauer Swing Wie ändere ich den Hintergrund vom Anzeigefeld einer JComboBox, die nicht zum Hineinschreiben offen steht? AWT, Swing, JavaFX & SWT 32
Hatsi09 JCombobox default wert AWT, Swing, JavaFX & SWT 6
D Swing JCombobox Aktion löscht Grafik AWT, Swing, JavaFX & SWT 1
cezary Choice, JComboBox oder JList AWT, Swing, JavaFX & SWT 5
R Swing Java9 NullPointerException bei JComboBox AWT, Swing, JavaFX & SWT 13
ralfb1105 Swing JComboBox update der Daten AWT, Swing, JavaFX & SWT 8
D Swing JCombobox Weiße Leerzeilen AWT, Swing, JavaFX & SWT 10
G JComboBox: Arrow-Button permanent anzeigen AWT, Swing, JavaFX & SWT 4
D Swing Java JComboBox Example AWT, Swing, JavaFX & SWT 16
K Swing JComboBox mit ArrayList füllen AWT, Swing, JavaFX & SWT 4
D Swing "blaues" Element aus JComboBox erhalten AWT, Swing, JavaFX & SWT 6
F JComboBox und Einträge AWT, Swing, JavaFX & SWT 3
gamillton Swing JComboBox mit extra Inhalt + breiteres Popupmenü AWT, Swing, JavaFX & SWT 0
T JPanelsteuerung mit JComboBox AWT, Swing, JavaFX & SWT 5
N Swing Duplikate im Jcombobox vermeiden AWT, Swing, JavaFX & SWT 15
L Swing JComboBox kann nicht erstellt werden! AWT, Swing, JavaFX & SWT 2
C JComboBox Objecte übergeben und Eintrag auswählen AWT, Swing, JavaFX & SWT 3
M Swing JComboBox mit Laufwerksbuchstaben (Windows) AWT, Swing, JavaFX & SWT 6
D Swing Größe einer JComboBox im GridBagLayout aufgrund der maximalen Länge der enthaltenen Daten AWT, Swing, JavaFX & SWT 7
D Swing JComboBox (DefaultComboBoxModel) überschreibt Eintrag beim erstellen AWT, Swing, JavaFX & SWT 0
3 JComboBox - Action - Auslesen & Umwandeln AWT, Swing, JavaFX & SWT 9
M Alle Schriftarten in JComboBox AWT, Swing, JavaFX & SWT 5
M Swing JComboBox eigenes Design AWT, Swing, JavaFX & SWT 3
Sin137 JComboBox mit Generics AWT, Swing, JavaFX & SWT 14
R JComboBox erweitern AWT, Swing, JavaFX & SWT 5
S Swing Eigene JComboBox Problem! AWT, Swing, JavaFX & SWT 1
V Editierbare JComboBox AWT, Swing, JavaFX & SWT 2
D Swing JCombobox in einem JTable vorbelegen AWT, Swing, JavaFX & SWT 4
F neuen Menüpunkt in jcombobox einfügen AWT, Swing, JavaFX & SWT 1
F Swing Jcombobox mit manueller Rückgabe AWT, Swing, JavaFX & SWT 4
W JComboBox auffristen nach Listenänderung AWT, Swing, JavaFX & SWT 20
S JComboBox mit mehreren Spalten? AWT, Swing, JavaFX & SWT 6
J JComboBox + ItemListener AWT, Swing, JavaFX & SWT 12
T Swing jComboBox auslesen mit Datenbankanbindung AWT, Swing, JavaFX & SWT 3
S JComboBox aus anderer Klasse füllen (Java-Swing) AWT, Swing, JavaFX & SWT 0
N JComboBox in JTable [Swing] -> totaler UI-Einsteiger AWT, Swing, JavaFX & SWT 3
H Swing jComboBox Ausgabe -1/null AWT, Swing, JavaFX & SWT 4
C Arrow Farbe bei JComboBox AWT, Swing, JavaFX & SWT 2
H Swing JList/JTable mit JButton, JTextField, Image, JComboBox und JLable AWT, Swing, JavaFX & SWT 2
O JTextfield und JComboBox Wert in SQL Database speichern AWT, Swing, JavaFX & SWT 4
S JComboBox UTF-8 Codierung zuweisen AWT, Swing, JavaFX & SWT 5
A JComboBox mit Array aktualisieren AWT, Swing, JavaFX & SWT 7
S JComboBox nach auswahl erneuern AWT, Swing, JavaFX & SWT 4
S Swing JComboBox mit Listener aktualisieren AWT, Swing, JavaFX & SWT 13
A Swing per JComboBox gewünschtes Attribut auswählen und Komponenten passen sich an AWT, Swing, JavaFX & SWT 7
D Swing JCombobox - Tooltip Location ändern AWT, Swing, JavaFX & SWT 4
J JComboBox Dropdown Icon AWT, Swing, JavaFX & SWT 2
M Swing Mix JComboBox - JButton? AWT, Swing, JavaFX & SWT 6
A Swing bei Auswahl und klick eines JComboBox buttons die Klasse eines anderen Projekts aufrufen AWT, Swing, JavaFX & SWT 3
F Swing jComboBox auslesen AWT, Swing, JavaFX & SWT 6
O Swing TableCellRenderer und JComboBox AWT, Swing, JavaFX & SWT 4
F Swing JComboBox - Frage zur Größe AWT, Swing, JavaFX & SWT 11
C Swing JComboBox, ItemListener gibt 2x aus AWT, Swing, JavaFX & SWT 2
O JComboBox - autom. Selektieren AWT, Swing, JavaFX & SWT 6
J JComboBox - wie getSelectedItem() überschreiben? AWT, Swing, JavaFX & SWT 8
S Swing Jcombobox und array AWT, Swing, JavaFX & SWT 6
D Swing JComboBox aktualisieren AWT, Swing, JavaFX & SWT 4
E JComboBox AWT, Swing, JavaFX & SWT 8
N Swing JComboBox Frage AWT, Swing, JavaFX & SWT 5
S Swing Bild auf jPanel nach Änderung von JComboBox zeichnen AWT, Swing, JavaFX & SWT 4
H Swing Element aus JComboBox auswählen AWT, Swing, JavaFX & SWT 2
H JCombobox inhalt löschen AWT, Swing, JavaFX & SWT 17
N Swing JCombobox - PopupMenu-Inhalt mit KSKB AWT, Swing, JavaFX & SWT 2
O JComboBox mit ArrayList füllen AWT, Swing, JavaFX & SWT 3
S Swing JComboBox mit Datenbank füllen AWT, Swing, JavaFX & SWT 16
S Inhalt einer JComboBox aktualisieren AWT, Swing, JavaFX & SWT 6
F Swing JComboBox in JTable AutoComplete + Tab AWT, Swing, JavaFX & SWT 4
O JComboBox getSelectedItem AWT, Swing, JavaFX & SWT 4
M JComboBox Hintergrundfarbe des gewählten Items AWT, Swing, JavaFX & SWT 3
B Swing Problem: Horizontaler Scrollbalken in JComboBox hinzufügen AWT, Swing, JavaFX & SWT 4
M JCombobox mit ID und Text AWT, Swing, JavaFX & SWT 4
A JComboBox-Inhalt durch neues Array ersetzen AWT, Swing, JavaFX & SWT 2
C Swing Dynamische JComboBox (Filter) AWT, Swing, JavaFX & SWT 28
L Jbutton + jcombobox mit vorhandenen frame verknüfen AWT, Swing, JavaFX & SWT 8
D JCombobox mit Linien Styles AWT, Swing, JavaFX & SWT 4
H Unterschiedliche JComboBox je JTable Zeile AWT, Swing, JavaFX & SWT 4
B jCombobox addItem funktioniert nicht AWT, Swing, JavaFX & SWT 9

Ähnliche Java Themen

Neue Themen


Oben