Wie implementiere ich die automatische Vervollständigung in einer Zelle in JTable?

In meinem JTable ist ein Zelleneditor als Instanz der DefaultCellEditor-Klasse (JComboBox) implementiert. Ich habe ein paar verschiedene Dinge ausprobiert (Hinzufügen von Auto-Vervollständigungs-Unterstützung zu Swing Comboboxen) aber es funktioniert immer noch nicht.

1:

//
JComboBox combo = new JComboBox(new Object[] { "Ester", "Jordi", "Jordina", "Jorge", "Sergi" });
AutoCompleteDecorator.decorate(combo);
DefaultCellEditor cellEditor = new DefaultCellEditor(combo);
TableColumn column = myTable.getColumnModel().getColumn(2);
column.setCellEditor(cellEditor);
//

2:

//
Object[] elements = new Object[] { "Ester", "Jordi", "Jordina", "Jorge", "Sergi" };
JComboBox c = new JComboBox(elements);
c.setEditable(true);
AutoCompleteSupport support = AutoCompleteSupport.install(c, GlazedLists.eventListOf(elements));
support.setSelectsTextOnFocusGain(false);
support.setHidesPopupOnFocusLost(false);
support.setStrict(false);
ComboBoxCellEditor combo = new ComboBoxCellEditor(c);
TableColumn column = myTable.getColumnModel().getColumn(2);
ComboTableCellRenderer renderer = new ComboTableCellRenderer();
column.setCellRenderer(renderer);
column.setCellEditor(combo);
//

3:

//
Object[] elements = new Object[] { "Ester", "Jordi", "Jordina", "Jorge", "Sergi" };
JComboBox comboBox = new JComboBox(elements);
comboBox.setEditable(true);
AutoCompletion ac = new AutoCompletion(comboBox);
ac.setStrict(false);
DefaultCellEditor cellEditor = new DefaultCellEditor(comboBox);
TableColumn column = myTable.getColumnModel().getColumn(2);
column.setCellEditor(cellEditor);
//

Das Problem, mit dem ich konfrontiert bin, besteht darin, dass der Benutzer, sobald er das Kombinationsfeld eingibt, den Bearbeitungsmodus verlässt und somit die Eingabe von Werten effektiv verhindert.

Antworten auf die Frage(2)

Ihre Antwort auf die Frage