# JTable alles rechts



## MQue (16. Okt 2008)

Hi,

gibt es eine Möglichkeit, das man in einer Tabelle eine Spalte auf der rechten Seite anordnet, es sind in den Zellen keine Objekte hinterlegt (z.B.: Integer) sondern es steht nur Text (Strings) in den Zellen,
Kann man das irgendwie einfach machen?


----------



## Michael... (16. Okt 2008)

Michael1234 hat gesagt.:
			
		

> in einer Tabelle eine Spalte auf der rechten Seite anordnet


Meinst Du wirklich die Spalte rechts anordnen oder die Inhalte der Zellen einer Spalte rechts anordnen?
Letzteres kann man z.B. mit TableCellRenderern erreichen.


----------



## MQue (16. Okt 2008)

Ich meinte den Inhalt der Tabelle rechts anordnen, geht das auch ohne den TableCellRenderer


----------



## SlaterB (16. Okt 2008)

http://www.google.de/search?hl=de&q=java+JTable+rechtsbündig&meta=

z.B.
http://www.tutorials.de/forum/swing-java2d-3d-swt-jface/179213-rechtsbuendig-schreiben-jtable.html


----------



## Dit_ (20. Okt 2009)

ok und wie schaffe ich nur bestimmte Spalten rechts oder in der mitte anzuordnen ?


----------



## L-ectron-X (20. Okt 2009)

Bei Standard-Datentypen geht das über das Model, darüberhinaus über den Renderer.
http://www.java-forum.org/java-faq-beitraege/7032-jtable-teil-4-darstellung-daten.html


----------



## Dit_ (20. Okt 2009)

Sorry kann in (JTable - Teil 4 - Darstellung der Daten) keine Beschreibung finden wie man eine Spalte rechts anordnet.
Bei mir sind alle spalten Strings.

Habe in meiner Klasse TabelleModell follgende methode erstellt


```
public Class getColumnClass(int col){
		 try {
		        switch (col) {
		          case 0:
		            return Class.forName("java.lang.String");
		          case 1:
		            return Class.forName("java.lang.Integer");
		          case 2:
		            return Class.forName("java.lang.Double");
		          default:
		            return null;
		        }
		      }
		      catch (Exception e) { return null; }

	}
```

das gibt doch nur datentyp zurueck und keine Anordnung oder ?

ich meine zB *setHorizontalAlignment * das wäre vielleicht die richtige methode... dafür

pls help! :shock:


----------



## Dit_ (20. Okt 2009)

ach ich noob ich muss extra RendererKlasse anlegen... sorry...


----------



## André Uhres (21. Okt 2009)

Michael1234 hat gesagt.:


> Ich meinte den Inhalt der Tabelle rechts anordnen, geht das auch ohne den TableCellRenderer


Ja. Wir müssen lediglich JTable#prepareRenderer(..) überschreiben. Beispiel:

```
table = new JTable() {
    @Override
    public Component prepareRenderer(final TableCellRenderer renderer,
            final int row, final int column) {
        Component c = super.prepareRenderer(renderer, row, column);
        if (c instanceof JLabel) {
            JLabel l = (JLabel) c;
            if (column == 0) {
                l.setHorizontalAlignment(JLabel.RIGHT);
            } else {
                l.setHorizontalAlignment(JLabel.LEFT);
            }
        }
        return c;
    }
};
```


----------

