JComboBox in einer Reihe von JTable

Status
Nicht offen für weitere Antworten.

weljo

Bekanntes Mitglied
hey wiso muss es in der JTable so kompliziert sein etwas mit Reihen zu machen. Will in meiner JTable eine JComboBox in einer Reihe. hab jedoch nur Beispiele für eine Spalte gefunden.
 

weljo

Bekanntes Mitglied
mich wunderts nur, dass da in java nicht einfach 2 JTables gibt ... z.B. JHorizontalTable und JVerticalTable würde doch recht viel sinn machen
 

weljo

Bekanntes Mitglied
Hab jetzt die Methode getTableCellEditorComponent(...) überschrieben jedoch hab ich jetzt das problem dass ich Editieren kann jedoch den Editieren modus nicht mehr verlassen kann ... kann mir wer sagen wie ich die andern Methoden schreiben muss??? hab mir die methoden von eclips generieren lassen und diese passen wohl nicht

Java:
import java.awt.Component;
import java.util.EventObject;
import java.util.Vector;

import javax.swing.JComboBox;
import javax.swing.JTable;
import javax.swing.JTextField;
import javax.swing.event.CellEditorListener;
import javax.swing.table.TableCellEditor;
 
public class ComboBoxEditor extends JComboBox implements TableCellEditor {
    public ComboBoxEditor(Vector<String> items) {
        super(items);
    }
	@Override
	public Component getTableCellEditorComponent(JTable table, Object value, boolean isSelected, int row, int column) 
	{
		if(row == 0)
		{
			return this;
		}
		else
		{
			return new JTextField(value.toString());
		}
	}
	@Override
	public void addCellEditorListener(CellEditorListener l) {
		// TODO Auto-generated method stub
		
	}
	@Override
	public void cancelCellEditing() {
		// TODO Auto-generated method stub
		
	}
	@Override
	public Object getCellEditorValue() {
		// TODO Auto-generated method stub
		return null;
	}
	@Override
	public boolean isCellEditable(EventObject anEvent) {
		// TODO Auto-generated method stub
		return true;
	}
	@Override
	public void removeCellEditorListener(CellEditorListener l) {
		// TODO Auto-generated method stub
		
	}
	@Override
	public boolean shouldSelectCell(EventObject anEvent) {
		// TODO Auto-generated method stub
		return false;
	}
	@Override
	public boolean stopCellEditing() {
		// TODO Auto-generated method stub
		return false;
	}
}
 

Michael...

Top Contributor
Du musst dem Umfeld auch sagen, wann und ob die Editierung beendet bzw. abgebrochen wurde. Da die Editoren relativ komplex sind würde ich Dir raten von AbstractCellEditor zu erben, da ist das meiste schon implementiert, u.a. musst Du dann nach Beendigung der Editierung nur stopCellEditing() bzw. cancelCellEditing() aufrufen.

Ausserdem sollte man die Editorkomponente nur einmal erstellen und wiederverwenden und nicht wie hier immer ein neues Objekt erzeugen:
[JAVA=24]
return new JTextField(value.toString());[/code]
 

weljo

Bekanntes Mitglied
habs jetzt mal versucht von AbstractCellEditor zu erben und dann mit table.setDefaultEditor(String.class/*wenn ich das richtig verstanden hab*/, new ComboBoxEditor()) zu arbeiten
jetzt bekomm ich garkeine combobox mehr

Java:
import java.awt.Component;

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


public class ComboBoxEditor extends AbstractCellEditor implements TableCellEditor {
	
	public JComboBox names;
	
    public ComboBoxEditor() {
    	super();
    	names = new JComboBox(MainFrame.names);
    }
    
    public Component getTableCellEditorComponent(JTable table, Object value, boolean isSelected, int row, int column) 
	{
		if(row == 0)
		{
			return names;
		}
		else
		{
			return null;
		}
	}

	@Override
	public Object getCellEditorValue() {		
		// müsset da irgendwie zwischen names.getSelectedItem() und dem inhalt des Standardtextfeldes unterscheiden
	}
}
 
Zuletzt bearbeitet:

Michael...

Top Contributor
Da ich nicht weiss, wie Dein Code "aussenrum" ausschaut, hier mal ein Bsp. mit Ebenius' Vorschlag die Methode getCellEditor() zu überschreiben:
Java:
import java.awt.*;
import java.awt.event.*;

import javax.swing.*;
import javax.swing.table.*;

public class JTableCellEditorRowDemo extends JFrame {

	public JTableCellEditorRowDemo() {
		this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		this.setBounds(0, 0, 500, 300);
		this.setLocationRelativeTo(null);
		DefaultTableModel model = new DefaultTableModel();
		model.setDataVector(new Object[][] {{"Eintrag1", "Eintrag2"}, {"Test", "Test"}}, new Object[]{"Spalte 1", "Spalte 2"});
		EditorTable table = new EditorTable(model);
		table.setRowHeight(20);
		this.getContentPane().add(new JScrollPane(table), BorderLayout.CENTER);
	}
	
	public static void main(String[] args) {
		new JTableCellEditorRowDemo().setVisible(true);
	}
	
	class EditorTable extends JTable {
		ComboBoxEditor editor;
		
		public EditorTable(TableModel model) {
			super(model);
			editor = new ComboBoxEditor();
		}
		
		public TableCellEditor getCellEditor(int row, int column) {
			if (row==0)
				return editor;
			return super.getCellEditor(row, column);
		}
	}
	
	class ComboBoxEditor extends AbstractCellEditor implements TableCellEditor, ActionListener  {
		private JComboBox combo;
		
		public ComboBoxEditor() {
			combo = new JComboBox(new Object[]{"Eintrag1", "Eintrag2", "Eintrag3"});
			combo.addActionListener(this);
		}
		
		public Component getTableCellEditorComponent(JTable table, Object value, boolean isSelected, int row, int column) {
			combo.setSelectedItem(value);
			return combo;
		}

		public Object getCellEditorValue() {
			return combo.getSelectedItem();
		}

		public void actionPerformed(ActionEvent evt) {
			this.stopCellEditing();
		}
	}
}
 

Ebenius

Top Contributor
Welches TableModel benutzt Du? Das DefaultTableModel behauptet für jede Spalte, sie hätte die ColumnClass [c]Object.class[/c]. Dort musst Du [c]getColumnClass(int)[/c] überschreiben, oder den Editor für [c]Object.class[/c] registrieren.

Ebenius
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
kodela Swing Element einer JComboBox ausgrauen AWT, Swing, JavaFX & SWT 3
Drachenbauer Swing Wie ändere ich den Hintergrund vom Anzeigefeld einer JComboBox, die nicht zum Hineinschreiben offen steht? AWT, Swing, JavaFX & SWT 32
D Swing Größe einer JComboBox im GridBagLayout aufgrund der maximalen Länge der enthaltenen Daten AWT, Swing, JavaFX & SWT 7
D Swing Erstes Item einer JCombobox in JTable anzeigen AWT, Swing, JavaFX & SWT 2
S Inhalt einer JComboBox aktualisieren AWT, Swing, JavaFX & SWT 6
B MouseListener im Renderer einer JComboBox AWT, Swing, JavaFX & SWT 3
N automatische Auswahl einer JComboBox AWT, Swing, JavaFX & SWT 6
N jComboBox mit eigenem Renderer und eigenem Datentyp als Rückgabe in einer Tabelle AWT, Swing, JavaFX & SWT 2
S JComboBox mit Ergebnis einer SQL Abfrage füllen AWT, Swing, JavaFX & SWT 39
D JComboBox jedes Item mit einer anderen Farbe AWT, Swing, JavaFX & SWT 10
H Swing JComboBox in einer Zeile AWT, Swing, JavaFX & SWT 3
P Swing Auswahl einer JComboBox für eine andere JComboBox übernehmen AWT, Swing, JavaFX & SWT 4
S Swing Probleme beim Aktualisieren einer JComboBox nach Auswahländerung AWT, Swing, JavaFX & SWT 2
S Item einer JComboBox soll variabel sein AWT, Swing, JavaFX & SWT 3
pinerski Swing Wie bekomme ich bei einer JComboBox den Text? AWT, Swing, JavaFX & SWT 2
G Event an einer JComboBox registrieren AWT, Swing, JavaFX & SWT 8
T Aktualisierung einer JComboBox -> RepaintProblem! AWT, Swing, JavaFX & SWT 3
O JCombobox in EINER JTable Cell AWT, Swing, JavaFX & SWT 5
G Liste einer JCombobox bekommen AWT, Swing, JavaFX & SWT 2
A Wert einer JComboBox auslesen AWT, Swing, JavaFX & SWT 1
G Karton in einer JComboBox AWT, Swing, JavaFX & SWT 12
L wie setze ich die Farbe des Pfeils in einer JComboBox? AWT, Swing, JavaFX & SWT 5
B pull down button einer jComboBox modifizieren AWT, Swing, JavaFX & SWT 9
W Text aus einer JCombobox holen AWT, Swing, JavaFX & SWT 2
T Mehrfachauswahl in einer JComboBox unmöglich! AWT, Swing, JavaFX & SWT 4
P Größe einer JComboBox fest definieren AWT, Swing, JavaFX & SWT 8
T die Liste der Elemente aus einer JComboBox auslesen AWT, Swing, JavaFX & SWT 6
T Ändern des Default-Aussehens einer JComboBox AWT, Swing, JavaFX & SWT 3
A instanceof einer JComboBox abfragen AWT, Swing, JavaFX & SWT 4
Paule selektiertes Item einer JComboBox herausfinden AWT, Swing, JavaFX & SWT 3
K JTable als Popup in einer JComboBox? AWT, Swing, JavaFX & SWT 3
B Wert einer JCombobox in einer JTable setzen AWT, Swing, JavaFX & SWT 2
R Probleme bei einfügen einer JComboBox auf Panel AWT, Swing, JavaFX & SWT 4
E Inhalt einer JComboBox ... -gelöst AWT, Swing, JavaFX & SWT 2
E Inhalt einer JComboBox aufgrund von Eintragungen prüfen,??? AWT, Swing, JavaFX & SWT 1
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
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
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 JComboBox (DefaultComboBoxModel) überschreibt Eintrag beim erstellen AWT, Swing, JavaFX & SWT 0
R Swing Durch JComboBox-Item eine TextArea aktualisieren AWT, Swing, JavaFX & SWT 2
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
I JComboBox gibt bei ausgewählten ITem NullPointer an... AWT, Swing, JavaFX & SWT 3
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

Ähnliche Java Themen

Neue Themen


Oben