Swing Problem mit DefaultTableCellRenderer

geqoo

Bekanntes Mitglied
Moin!

Ich habe ein kleines Problem mit dem DefaultTableCellRenderer.
Ich habe eine JTable und möchte dort ein paar Daten eingeben. Da man den Text der Kopfzeile ja mit normalen Attributen nicht linksbündig ausrichten kann, habe ich den DefaultTableCellRenderer benutzt. Hier habe ich allerdings das Problem, dass meine Gitternetzlinien verschwunden sind und ich diese gerne wieder hätte.
Ich hoffe, ihr könnt mir sagen, was mir noch fehlt oder was ich falsch mache.

Mein Code:

Java:
TableModel jTable1Model = 
	new DefaultTableModel(
		new String[][] { 
		}, 
		// Tabellenkopf
		new String[] { 
			"name", 
			"telefon", 
			"ort", 
			"plz"
		}
	);
jTable1 = new JTable();

DefaultTableCellRenderer renderer_left = new DefaultTableCellRenderer();
renderer_left.setHorizontalAlignment(JLabel.LEFT);
renderer_left.setBackground(new java.awt.Color(212,208,200));
Border blackRight = new MatteBorder(0,0,0,1,Color.BLACK);
renderer_left.setBorder(blackRight);

JTableHeader header = jTable1.getTableHeader();
header.setDefaultRenderer(renderer_left);
header.setBackground(new java.awt.Color(212,208,200));
 
Mhm mal ne` andere Frage: kannst du dir nicht einfach den Renderer des TableHeaders holen und dort einfach setHorizontalAlignment aufrufen anstatt selbst einen neuen Renderer zu entwerfen? =)

Also quasi einfach nur:
Java:
		JTable jTable1 = new JTable(jTable1Model); //model setzen ??!
		JTableHeader header = jTable1.getTableHeader();
		header.setBackground(new java.awt.Color(212,208,200)); //setze farbe
		((DefaultTableCellRenderer)header.getDefaultRenderer()).setHorizontalAlignment(JLabel.LEFT); // linksbündig/SwingConstants.LEFT

Dann kann der ganze Rest mit dem renderer_left und dem Border komplett raus.
 

Neue Themen


Zurück
Oben