Swing JTable und Spaltenausrichtung

Bitte aktiviere JavaScript!
Hallo zusammen,

ich bin ganz neu hier und beschäftige mich erst seit zwei Wochen mit Java. Bitte seid nachsichtig mit mir und meinen "dummen" Fragen, aber ich komme da momentan nicht weiter.

Ich habe in einem Fenster ein JTable mit 6 Spalten erstellt. Ich habe es geschafft, alle Spalten zu zentrieren, aber das will ich eigentlich nicht.
Ich würde gerne jeder Spalte eine eigene Ausrichtung zuweisen, hab aber keinen Schimmer wie das gehen könnten. Alle von mir gewälzten Bücher und Beschreibungen konnten mir auch nicht weiterhelfen.

Wer weiß Rat ?
 
A

Anzeige


Vielleicht hilft dir dieser Kurs hier weiter: (hier klicken)
Moin,
wie schaut den Dein Table-Model aus?
Das wird doch sicher irgendwo sowas drinstehen:
Java:
      /** @brief Membervariable für das Spaltenarray */   
      public static final ColumnData M_COLUMNS[] =
      {
          new ColumnData( STRCOL_CRT, 45, SwingConstants.CENTER ),
          new ColumnData( STRCOL_AKTIV, 15, SwingConstants.CENTER ),
          new ColumnData( STRCOL_DELETED, 15, SwingConstants.CENTER ),
          new ColumnData( STRCOL_TYP, 15, SwingConstants.CENTER ),
          new ColumnData( STRCOL_DATUMPRUEF, 70, SwingConstants.CENTER ),
          new ColumnData( STRCOL_ZEIT, 70, SwingConstants.CENTER ),
          new ColumnData( STRCOL_TAG, 25, SwingConstants.CENTER ),
          new ColumnData( STRCOL_MONAT, 25, SwingConstants.CENTER ),
          new ColumnData( STRCOL_WO, 30, SwingConstants.CENTER ),
          new ColumnData( STRCOL_ZWO, 33, SwingConstants.CENTER ),
          new ColumnData( STRCOL_ANZ, 50, SwingConstants.CENTER ),
          new ColumnData( STRCOL_DATUMEND, 70, SwingConstants.CENTER ),
          new ColumnData( STRCOL_TXT, 600, SwingConstants.LEFT )
      };
VG Klaus
 
Oder halt einfach über einen selbst definierten CellRenderer
Java:
public class Test  {
    public static void main(String[] args) {

        JFrame frame = new JFrame();
        frame.setSize(500, 300);

        JTable table= new JTable(new Object[][]{
                {"A", "B", "C", "D", 0.1},
                {"E", "F", "G", "H", 1},
                {"A", "B", "C", "D", 2.423}
        }, new Object[] {
                "Zentriert", "Links", "Links", "Rechts", "Dezimal"
        });
        table.setDefaultRenderer(Object.class, new CustomTableCellRenderer());

        frame.add(new JScrollPane(table));
        frame.setVisible(true);
    }

    static class CustomTableCellRenderer extends DefaultTableCellRenderer {
        @Override
        public Component getTableCellRendererComponent(JTable table, Object value, boolean isSelected, boolean hasFocus, int row, int column) {
            JLabel label = (JLabel)super.getTableCellRendererComponent(table, value, isSelected, hasFocus, row, column);

            if(column == 0) {
                label.setHorizontalAlignment(SwingConstants.CENTER);
            } else if(column == 1 || column == 2){
                label.setHorizontalAlignment(SwingConstants.LEFT);
            } else {
                label.setHorizontalAlignment(SwingConstants.RIGHT);
            }

            if(column == 4 && value instanceof Number) {
                label.setText(new DecimalFormat("00.00").format(value) + "%");
            }

            return label;
        }
    }
}
 
Ich danke euch erst mal für die schnelle und ausführliche Hilfe.
Ich werde mal beide Varianten ausprobieren .

War mir nicht klar, in welcher Form "dezimal" vorhanden ist. Hauptsache es hilft !
:D
 
Passende Stellenanzeigen aus deiner Region:

Neue Themen

Oben