Ändern der Text-Ausrichtung einer Spalte in JTable

Scrapy

Mitglied
Ich würde gerne die Text-Ausrichtung(Alignment) einer Spalte in JTable nach Rechts ändern!

Leider kenne ich mich mit der sehr komplexen Struktur von JTable noch nicht so gut aus.:(
Hab's schon über JTable.getTableHeader() und über das DefaultTableModel() probiert.
Zahlen setzt JTable meist automatisch an den rechten Rand jedoch muß ich unterschiedliche Mengenangaben dahinterschreiben.

Habt ihr einen Tipp für mich?
 
Danke für den Link aber noch etwas zu hoch für mich
aber ich hatte in der Zeit sowas konstruiert:

Code:
// Aufbau des Fensters...
 
defaultRenderer = jTable.getDefaultRenderer(Object.class);
jTable.setDefaultRenderer(Object.class, new TableCellRenderer()
	{
		private JLabel lblText = new JLabel("", JLabel.RIGHT)
		public Component getTableCellRendererComponent(JTable table, Object value, boolean isSelected,
			boolean hasFocus, int row, int column)
		{
			if(column == 2)
			{
				lblText.setText((String)value);
				return lblText;
			}
			return defaultRenderer.getTableCellRendererComponent(table, value, isSelected, hasFocus, row, column);
		}
	});
 
// ...

Nur jetzt habe ich den Nachteil, daß bei einer Auswahl der Zeile, der Bereich mit dem JLabel einfach weiß bleibt. Wie bekommt man das hin oder die Systemmarkierfarbe heraus?

So ein kleiner Anstoß (Codeschnipsel) würde mir schon einmal reichen! ;)
 
Habs hinbekommen, wenn man den folgenden Code in die obrige if-Abfrage mit einbindet.

Code:
				if(hasFocus || isSelected)
				{
					lblText.setBorder((Border)UIManager.getDefaults().get("Table.focusCellHighlightBorder"));
					lblText.setBackground(table.getSelectionBackground());
					lblText.setForeground(table.getSelectionForeground());
				}
				else
				{
					lblText.setBorder(BorderFactory.createEmptyBorder(1, 1, 1, 1));
					lblText.setForeground(table.getForeground());
					lblText.setBackground(table.getBackground());
				}
 
Zurück