Lemmy Danger: Textausrichtung für eine Spalte einer JTable

Beitrag lesen

Hallo!

Und nun will ich, dass die zweite Spalte rechtsbündig und die erste linksbündig ist. Wie stelle ich das an?
Über ein DefaultCellRenderer?

Warum schreibst Du Dir nicht Deinen eigenen Renderer? Das ist gar nicht schwer und gibt Dir die volle Kontrolle über das Aussehen der einzelnen Zellen. Die einzige Methode, die Du implementieren mußt, ist getTableCellRendererComponent(...). Dort kreierst Du ein JLabel, passt es Deinen Vorstellungen an (z.B. die horizontale Ausrichtung), und gibst es anschließend zurück.

Ich habe unten mal ein Beispiel gepostet, wie so etwas ausschauen könnte (ist nur Copy&Paste und müßte für Deine Tabelle natürlich angepasst werden).

  
public class CustomTableCellRenderer implements TableCellRenderer {  
  
   private Font font = new Font("SansSerif", Font.BOLD, 12);  
  
   public Component getTableCellRendererComponent(  
      JTable table, Object value, boolean isSelected, boolean hasFocus, int row, int column) {  
  
      JLabel label;  
      if(!(value instanceof JLabel)) {  
         label = new JLabel((String)value);  
      } else {  
         label = (JLabel) value;  
      }  
      label.setOpaque(true);  
      label.setFont(table.getFont());  
      label.setForeground(table.getForeground());  
      label.setBackground(table.getBackground());  
  
      if(isSelected) {  
         label.setBackground(table.getSelectionBackground());  
         label.setForeground(table.getSelectionForeground());  
      }  
  
      if(column == 1) {  
         label.setHorizontalAlignment(JLabel.RIGHT);  
      }  
  
      if(column == 3) {  
         label.setHorizontalAlignment(JLabel.CENTER);  
      }  
  
      return label;  
   }  
}  

Ich kann auch nich richtig nachvoll ziehen, was das mit JLabel zu tun hat.

Nun schon, oder?

Gruß,
Oliver

--
Nichts ist wertvoller als ein guter Freund, ausser ein Freund mit Schokolade.