JTable/ComboBox/Tabellenkopf

remo1981

Grünschnabel
Hallo,

ich hab bereits ein Beispiel für eine combobox innerhalb einer JTable gesehen. Allerdings ist da kein Tabellenkopf drin. Ich habe auch ein Beispiel gesehen wo eine Tabelle mit Kopf erstellt wird...

Mein Prob ist: Ich bekomme beide Teile einfach nicht zusammen!

Hier einfach mal das Beispiel aus diesem Forum und meine versuchte Änderung...der Tabellenkopf wird gespeichert, aber nicht angezeigt :(

Code:
import java.awt.BorderLayout;

import javax.swing.DefaultCellEditor;
import javax.swing.JComboBox;
import javax.swing.JFrame;
import javax.swing.JScrollPane;
import javax.swing.JTable;
import javax.swing.table.TableColumn;
import javax.swing.table.TableColumnModel;

public class JComboBoxDemo extends JFrame {

	private JTable table;
	private JScrollPane scrollPane;

	public JComboBoxDemo() {
		super("JTableComboBoxDemo");
		setDefaultCloseOperation(EXIT_ON_CLOSE);

		final JComboBox combo = new JComboBox(new String[] { "boolean", "float", "int", "string" });
                String[] columns = new String[] { "Name", "Value", "Typ" };
                Object[][] data = new Object[20][3];
                table = new JTable(data, columns);
             
		TableColumnModel colmModel = table.getColumnModel();
		TableColumn tc1 = colmModel.getColumn(2);
		tc1.setCellEditor(new DefaultCellEditor(combo));

		scrollPane = new JScrollPane(table);
		getContentPane().add(table, BorderLayout.CENTER);

		pack();
		setVisible(true);
	}
public static void main(String[] args) {
		new JComboBoxDemo();
	}
}
 
Mit dem Problem bin ich vertraut ;-)
Das Problem ist, dass der Tabellenkopf - soweit ich richtig informiert bin - nur angezeigt wird, wenn sich die Tabelle in einer JScrollPane befindet. Also folgender Code:

Code:
JScrollPane scrollpane = new JScrollPane(table,ScrollPaneConstants.VERTICAL_SCROLLBAR_NEVER,ScrollPaneConstants.HORIZONTAL_SCROLLBAR_NEVER);

Die beiden never Variablen sorgen dafür, dass die Scrolleisten nie angezeigt werden. Du kannst sie auch immer anzeigen lassen (always) oder nach Bedarf (as_needed).

hth

taouri
 
Zurück