Hallo,
wie kann man die Inhalte der Datenzellen eines JTable zentriert ausrichten?
Gruss.
Hicham
Hallo,
wie kann man die Inhalte der Datenzellen eines JTable zentriert ausrichten?
Gruss.
Hicham
Leite Deine Klasse von JTable ab.
Überschreibe lediglich:
public TableCellRenderer getCellRenderer (int row, int column)
und liefere dort Deinen Renderer zurück.
Dein Renderer muß TCR implementieren:
class MyRenderer implements TableCellRenderer
{
public Component getTableCellRendererComponent (...)
{
JLabel jl = new JLabel ("" + value);
jl.setHorizontalAlignment (SwingConstants.CENTER);
return jl;
}
}
Hi,
Hallo Stefan,
vielen Danke für deine Antwort. Mit deinem Vorschlag habe ich versucht aber hat es leider nicht funktioniert, weil ich Vektoren benutze.
v1 = new Vector();
v2 = new Vector();
v1.addElement(„ID“);
v1.addElement(„Date“);
v1.addElement(„Status“);
v1.addElement(„ROI“);
v1.addElement(„Data“);
v1.addElement(„Quality“);
table = new JTable(v2, v1);
Weisst du wie man so ein Problem mit Vektoren löst?
Gruss.
Hicham
[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]
[schnipp]
Weisst du wie man so ein Problem mit Vektoren löst?
Die Daten haben erstmal nichts mit dem TableCellRenderer zu tun. Du kannst also auch einen TCR einsetzen, egal wie Du Deine Tabelle füllst.
Ich empfehle erstmal http://www.galileocomputing.de/openbook/javainsel5/j… und dann auch gleich http://java.sun.com/docs/books/tutorial/uiswing/comp…
Viel Glück! 
Hi,
Leite Deine Klasse von JTable ab.
Überschreibe lediglich:public TableCellRenderer getCellRenderer (int row, int column)
…
vielen Danke für deine Antwort. Mit deinem Vorschlag habe ich
versucht aber hat es leider nicht funktioniert, weil ich
Vektoren benutze.
table = new JTable(v2, v1);
Weisst du wie man so ein Problem mit Vektoren löst?
Ja.
Entgegen meiner Empfehlung mußt Du auch mindestens einen Konstruktor - nicht überschreiben, aber implementieren.
In Deinem Fall also den, der Vektoren erwartet; etwa so:
public MyTable (Vector v2, Vector v1)
{
super (v2, v1);
}
Die richtige Arbeit leitest Du mit ‚super‘ an die Vaterklasse weiter.
Wenn die Basisklasse von der Du ableitest keinen parameterlosen Konstruktor hat, wie JTable, dann kann Java nicht stillschweigend einen Defaultkonstruktor erzeugen (weil es nicht weiß welchen, und welche Parameter übergeben werden sollen).