Einer Zelle der JTable ein GUI Element zuweisen

kirashet

Mitglied
Hallo,

ist es möglich der JTable zu sagen, dass eine bestimmte Zelle eine ComboBox/CheckBox/Whatever haben soll, also nicht die gesamte Spalte, sondern von mir aus nur die Zelle in der 3. Spalte und 2. Zeile?

Auf eine Antwort würde ich mich freuen.

MfG
Kirashet
 
Hallo!

Klar geht das ;-)

Code:
import java.awt.Component;

import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JTable;
import javax.swing.JTextField;
import javax.swing.table.DefaultTableCellRenderer;

public class JTableDemo extends JFrame {

	private JTable table;

	public JTableDemo() {
		super("JTableDemo");
		setDefaultCloseOperation(EXIT_ON_CLOSE);

		String[] header = { "ABC", "DEF", "GHI" };
		String[][] data = { { "1A", "1B", "1C" }, {
				"2A", "2B", "2C" }, {
				"3A", "3B", "3C" }
		};

		table = new JTable(data, header);

		final JButton btn = new JButton("Button");

		DefaultTableCellRenderer renderer = new DefaultTableCellRenderer() {
			public Component getTableCellRendererComponent(
				JTable table,
				Object value,
				boolean isSelected,
				boolean hasFocus,
				int row,
				int column) {

				String val = (String) value;
				if (isSelected) {
					if (val.startsWith("2") && val.endsWith("B")) {
						return btn;
					} else {
						return new JTextField(val);
					}
				} else {
					return new JLabel(val);
				}
			}
		};
		table.getColumn("DEF").setCellRenderer(renderer);

		getContentPane().add(table);

		pack();
		setVisible(true);
	}

	public static void main(String[] args) {
		new JTableDemo();
	}
}

Gruß Tom
 
Linkliste

Original geschrieben von kirashet
Hallo,

ist es möglich der JTable zu sagen, dass eine bestimmte Zelle eine ComboBox/CheckBox/Whatever haben soll, also nicht die gesamte Spalte, sondern von mir aus nur die Zelle in der 3. Spalte und 2. Zeile?

Auf eine Antwort würde ich mich freuen.

MfG
Kirashet

Ich frage mich, wofür es eigentlich die Linkliste gibt? Das ist zum wiederholten mal eine Frage zu Renderern / JTable, und dazu gibt es phantastische Beispiele unter dem von mir geposteten Link in der Linkliste. Bitte dort einen Blick hineinwerfen, dann seht Ihr, was man mit Tabellen alles machen kann.
 
Zurück