ERLEDIGT
NEIN
NEIN
ANTWORTEN
6
6
ZUGRIFFE
1224
1224
EMPFEHLEN
-
Hallo zusammen,
Ich habe eine JTable in derer erster Spalte ein String dargestellt wird, der einen Eintrag aus einer JComboBox repräsentiert. Wenn ich die entsprechende Zelle anklicke, wird die JComboBox angezeigt und ich kann einen Eintrag wählen.
So weit so gut.
Nun hätte ich es aber gerne, dass, wenn eine solche Zelle angewählt wird, automatisch der bisher gewählte Eintrag in der JComboBox angewählt ist.
Meine Tabelle erbt von JTable, der Editor für die JComboBox ist der DefaultEditor, das Model erbt von AbstractTableModel und ist selber implementiert.
Irgendwie bekomme ich das nicht hin. Hat mir jemand einen Typ?
Danke im Voraus, Gruss
mas
-
16.04.09 11:02 #2
Moin,
poste doch mal den Code von der Passage, bei der Dein Eintrag übernommen werden soll !
Gruß
KlausEs ist noch kein Meister vom Himmel gefallen - sonst hätte man schon längst seine Leiche gefunden !!
Falls ich helfen konnte, wäre eine Bewertung oder ein Danke nett ;-)
-------------------------------------------------------------------------------------------------
Ich beantworte keine Fragen per PN !!
Stellt Eure Fragen im Forum - dann haben alle etwas davon !!
-
Hey vfl_freak, danke für Deine Antwort, here you go:
Im JPanel wo die Tabelle angezeigt wird, setze ich den Editor für die entsprechende Spalte.
Natürlich wird hier die ganze JTable noch "konfiguriert" Model wird gesetzt, Listeners und Renderer hinzugefügt, usw.Code java:1
table.getColumnModel().getColumn(KeypadConstants.COLUMN___TYPE).setCellEditor(new CustomComboBoxCellEditor(KeypadConstants.KE_COM_TYP));
Der Editor ist (nicht wie vorhin geschwindelt) angepasst, die Anpassungen sind jedoch minim, ergo unwichtig.
Die Klasse CustomComboBoxCellEditor:
Code java:1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
import java.awt.event.MouseEvent; import java.util.EventObject; import javax.swing.DefaultCellEditor; import javax.swing.JComboBox; public class CustomComboBoxCellEditor extends DefaultCellEditor { public CustomComboBoxCellEditor(JComboBox obj) { super(obj); } @Override public boolean isCellEditable(EventObject evt) { if (evt instanceof MouseEvent) { int clickCount; // For single-click activation //clickCount = 1; // For double-click activation clickCount = 2; // For triple-click activation //clickCount = 3; return ((MouseEvent)evt).getClickCount() >= clickCount; } return true; } }
Dann wird mit der Methode setValueAt in meinem TableModel der neue Wert gesetzt. (Auszug aus der Methode)
Code java:1 2 3 4 5 6 7 8 9 10 11 12
@Override public void setValueAt(final Object aValue, final int rowIndex, final int columnIndex) { final KeypadEntry keypadEntry = keypad.getLine( rowIndex ); switch( columnIndex ){ case KeypadConstants.COLUMN___TYPE: // TYP final KeypadType newType = (KeypadType)aValue; keypadEntry.setType( newType ); break; } fireTableCellUpdated(rowIndex, columnIndex); }
Was mir fehlt, ist der Schritt dazwischen. Im Moment, wo die Zelle in den "Editier-Modus" geht, müsste ich den entsprechenden index der JComboBox anwählen.
Danke für jeden Tipp, Gruss
mas
-
16.04.09 12:33 #4
Moin,
ich fürchte, ich verstehe jetzt die Frage nicht so ganz ....
Meinst Du, schon dann, wenn Du nur auf die Zeile klickst oder erst wenn Du (beim Doppeklick?) die ComboBox öffnest?Nun hätte ich es aber gerne, dass, wenn eine solche Zelle angewählt wird, automatisch der bisher gewählte Eintrag in der JComboBox angewählt ist.
Eigentlich sollte es doch reichen, dies beim Öffnen zu tun, oder ?
Gruß
KlausEs ist noch kein Meister vom Himmel gefallen - sonst hätte man schon längst seine Leiche gefunden !!
Falls ich helfen konnte, wäre eine Bewertung oder ein Danke nett ;-)
-------------------------------------------------------------------------------------------------
Ich beantworte keine Fragen per PN !!
Stellt Eure Fragen im Forum - dann haben alle etwas davon !!
-
Also ich habe folgendes Problem:
- Ich Klicke die Zelle an (Doppelklick)
- Der Dropdown öffnet sich.
- Kein Eintrag ist angewählt
Was ich möchte:
- Ich Klicke die Zelle an (Doppelklick)
- Der Dropdown öffnet sich.
- Der zuvor selektierte Eintrag ist angewählt
Ich vermute es funktiniert nicht, weil:
- Der Dropdown in jeder Zeile der Tabelle verfügbar ist?
- Die comboBox als Singleton implementiert ist?
- Die Elemente der ComboBox Objekte sind, der dargestellte Wert aber ein String?
Was ich suche:
- Einen Listener oder etwas ähnliches, das ausgelöst wird, wenn ich beginne zu editieren (Also just bevor die ComboBox sich öffnet), um den gewählten Eintrag zu setzen.
Ich hoffe, das macht das Problem klar.
Gruss
mas
-
16.04.09 13:52 #6
Moin,
ok, so wie ich es auch vermutet hatte ....
Was heißt "der Dropdowm ist in JEDER Zelle verfügbar"?
Ich denke, nur in der ersten .....
Das es am Singleton liegt, glaub ich eher weniger, der verhindert ja nur, dass von einer Klasse mehr als ein Objekt erzeugt werden kann. Oder versuchst Du etwa jedesmal eine neue ComboBox zu erzeugen ?
Ist mir nicht bekannt! Es gibt aber doch für die ComboBox den einfachen Befehl "setSelectedIndex", dem Du nur eine Integer für den gewünschten Index mitgeben musst!
Ich würde einfach an der Stelle, wo Du den Doppelklick prüfst, hier entsprechend dem String in der ersten Spalte über eine Zuordnung den gewünschten Index zu übergeben!
Gruß
KlausEs ist noch kein Meister vom Himmel gefallen - sonst hätte man schon längst seine Leiche gefunden !!
Falls ich helfen konnte, wäre eine Bewertung oder ein Danke nett ;-)
-------------------------------------------------------------------------------------------------
Ich beantworte keine Fragen per PN !!
Stellt Eure Fragen im Forum - dann haben alle etwas davon !!
-
In jeder ZEILE, nicht in jeder Zelle.
Zitat von vfl_freak
Genau! Aber WO, mache ich das? Das war von beginn weg meine Frage. WIE fange ich das Ereignis ab: "Jetzt wird diese Tabellenzelle bearbeitet"?
Zitat von vfl_freak
Keine schlechte Idee. Ich schaus mir an, danke!
Zitat von vfl_freak
Gruss
mas
Ähnliche Themen
-
JComboBox in JTable
Von RalU im Forum Swing, Java2D/3D, SWT, JFaceAntworten: 1Letzter Beitrag: 22.12.09, 16:52 -
JComboBox-Zeilen in JTable
Von KPMAnakha im Forum Swing, Java2D/3D, SWT, JFaceAntworten: 2Letzter Beitrag: 02.11.09, 14:44 -
JComboBox in JTable: Verhalten bei editieren
Von mas666 im Forum Swing, Java2D/3D, SWT, JFaceAntworten: 2Letzter Beitrag: 16.04.09, 10:45 -
Gästebuch: richtige Eintragsnummer zu richtigen Eintrag
Von -GS-Master im Forum PHPAntworten: 3Letzter Beitrag: 31.07.06, 16:00 -
JComboBox in JTable
Von himbeer im Forum Swing, Java2D/3D, SWT, JFaceAntworten: 3Letzter Beitrag: 12.01.05, 16:54





Zitieren

Login





