# NetBeans 5.5.1 jTable Textausrichtung



## dimitrif (22. Jul 2007)

Hallo,  :?:  :###  :?: 

vielleicht kann mir jemand helfen, ich will einfach in der Swing-Tabelle (automatisch erzeugt) Text ausrichten. Genauer gesagt ich will, dass im meiner Tabelle Text zentriert wird.

Wie kann ich es erreichen?


Vielen Dank im Voraus.


----------



## Ullenboom (23. Jul 2007)

Hallo dimitrif,

das geht mit NetBeans über die Gui nicht. Aber: Schreibe eine Unterklasse von DefaultTableCellRenderer (ein JLabel), und rufe die Zentrierungsfunktion auf.

setHorizontalAlignment(JLabel.CENTER);

Zu den Renderer gibt es unter http://www.tutego.com/javabuch/javainsel6/javainsel_14_018.htm#Xxx1001549 mehr.

Grüße

 Christian


----------



## dimitrif (23. Jul 2007)

Vielen Dank


----------



## dimitrif (25. Jul 2007)

Hallo, noch mal.

ich habe schon einiges durchprobiert. Ich habe keine Ahnung (früherhabe ich immerim Visual Basic gearbeitet), jetzt habe ich aber ein Project in java

 :cry: 

NetBeans hat ein folgendes Code erzeugt und ich weiß nicht wie und an welcher stelle ich diesen DefaultTableCellRenderer einbinden kann, damit ich später setHorizontalAlignment(JLabel.CENTER); 
setzen könnte


```
/package javaapplication2;

public class NeuJFrame extends javax.swing.JFrame {
    
    public NeuJFrame() {
        initComponents();
    }
                              
    private void initComponents() {
        jScrollPane1 = new javax.swing.JScrollPane();
        jTable1 = new javax.swing.JTable();

        setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);
        jTable1.setModel(new javax.swing.table.DefaultTableModel(
            new Object [][] {
                {null, null, null, null},
                {null, null, null, null},
                {null, null, null, null},
                {null, null, null, null}
            },
            new String [] {
                "Titel 1", "Titel 2", "Titel 3", "Titel 4"
            }
        ));
        jScrollPane1.setViewportView(jTable1);

        javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane());
        getContentPane().setLayout(layout);
        layout.setHorizontalGroup(
            layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(layout.createSequentialGroup()
                .addContainerGap()
                .addComponent(jScrollPane1, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addContainerGap(113, Short.MAX_VALUE))
        );
        layout.setVerticalGroup(
            layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, layout.createSequentialGroup()
                .addContainerGap(53, Short.MAX_VALUE)
                .addComponent(jScrollPane1, javax.swing.GroupLayout.PREFERRED_SIZE, 92, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addGap(376, 376, 376))
        );
        pack();
    }// </editor-fold>                        
    
    public static void main(String args[]) {
        java.awt.EventQueue.invokeLater(new Runnable() {
            public void run() {
                new NeuJFrame().setVisible(true);
            }
        });
    }
    
    // Variablendeklaration - nicht modifizieren                     
    private javax.swing.JScrollPane jScrollPane1;
    private javax.swing.JTable jTable1;
    // Ende der Variablendeklaration                   
    
}
```



kann mir jemand elfen?

Vielen Dank


----------



## Ullenboom (25. Jul 2007)

Im Konstruktor. Schau dir bitte noch einmal das Kapitel hinter dem Link an. Die Lösung ist so was wie

TableCellRenderer ren = new MeinSupiTableCellRenderer(); 
jTable1.setDefaultRenderer( DEINTYP.class, ren );

Grüße

Christian


----------



## dimitrif (26. Jul 2007)

Das ist zwar alles wunderbar mit dem Link, den ich habe, aber das Problem ist, wenn ich das selbst alles schreibe, läuft alles problemlos, aber WIE KANN ICH DAS IN NETBEANS CODE einbinden. Da wo diese Tabelle (von NetBeans) erstellt wird, kann ich nichts verändern - es ist einfach nicht editierbar. Wenn ich von außerhalb irgendwas zusätzlich schreibe, dann kommen irgendwelche Fehlermeldungen - ständig, kann mir vielleicht jemand einfach zeigen, anhand meines Beispiels, wo und wie ich diese Unterklasse deklarieren soll, bitte, ohne Verweise auf irgendwelche Bücher, denn ich *MUSS* mit NetBeans programieren und ich möchte vertehen, wie ich in NetBeans Code eingreifen kann,

nämlich in diesen:


```
// <editor-fold defaultstate="collapsed" desc=" Erzeugter Quelltext ">
    private void initComponents() {
        jScrollPane1 = new javax.swing.JScrollPane();
        jTable1 = new javax.swing.JTable();

        setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);
        jTable1.setModel(new javax.swing.table.DefaultTableModel(
            new Object [][] {
                {null, null, null, null},
                {null, null, null, null},
                {null, null, null, null},
                {null, null, null, null}
            },
            new String [] {
                "Titel 1", "Titel 2", "Titel 3", "Titel 4"
            }
        ));
        jScrollPane1.setViewportView(jTable1);

        javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane());
        getContentPane().setLayout(layout);
        layout.setHorizontalGroup(
            layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(layout.createSequentialGroup()
                .addContainerGap()
                .addComponent(jScrollPane1, javax.swing.GroupLayout.PREFERRED_SIZE, 375, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addContainerGap(15, Short.MAX_VALUE))
        );
        layout.setVerticalGroup(
            layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(layout.createSequentialGroup()
                .addContainerGap()
                .addComponent(jScrollPane1, javax.swing.GroupLayout.PREFERRED_SIZE, 101, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addContainerGap(188, Short.MAX_VALUE))
        );
        pack();
    }// </editor-fold>
```


Das Ganze sieht so aus:


```
*
 * NeuJFrame.java
 *
 */

package rt;

/**
 *
 */
public class NeuJFrame extends javax.swing.JFrame {
    
    /** Creates new form NeuJFrame */
    public NeuJFrame() {
        initComponents();
    }
    
    /** This method is called from within the constructor to
     * initialize the form.
     * WARNING: Do NOT modify this code. The content of this method is
     * always regenerated by the Form Editor.
     */
    // <editor-fold defaultstate="collapsed" desc=" Erzeugter Quelltext ">
    private void initComponents() {
        jScrollPane1 = new javax.swing.JScrollPane();
        jTable1 = new javax.swing.JTable();

        setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);
        jTable1.setModel(new javax.swing.table.DefaultTableModel(
            new Object [][] {
                {null, null, null, null},
                {null, null, null, null},
                {null, null, null, null},
                {null, null, null, null}
            },
            new String [] {
                "Titel 1", "Titel 2", "Titel 3", "Titel 4"
            }
        ));
        jScrollPane1.setViewportView(jTable1);

        javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane());
        getContentPane().setLayout(layout);
        layout.setHorizontalGroup(
            layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(layout.createSequentialGroup()
                .addContainerGap()
                .addComponent(jScrollPane1, javax.swing.GroupLayout.PREFERRED_SIZE, 375, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addContainerGap(15, Short.MAX_VALUE))
        );
        layout.setVerticalGroup(
            layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(layout.createSequentialGroup()
                .addContainerGap()
                .addComponent(jScrollPane1, javax.swing.GroupLayout.PREFERRED_SIZE, 101, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addContainerGap(188, Short.MAX_VALUE))
        );
        pack();
    }// </editor-fold>
    
    /**
     * @param args the command line arguments
     */
    public static void main(String args[]) {
        java.awt.EventQueue.invokeLater(new Runnable() {
            public void run() {
                new NeuJFrame().setVisible(true);
            }
        });
    }
    
    // Variablendeklaration - nicht modifizieren
    private javax.swing.JScrollPane jScrollPane1;
    private javax.swing.JTable jTable1;
    // Ende der Variablendeklaration
    
}
```


Vielen Dank


----------



## Ullenboom (26. Jul 2007)

Der Konstruktor ist doch editierbar! Oder was meinst du sollte das sonst rein?

public NeuJFrame() {
        initComponents();

  //

TableCellRenderer ren = new MeinSupiTableCellRenderer();
jTable1.setDefaultRenderer( DEINTYP.class, ren ); 

//

    } 

Christian


----------

