Neue Instanz von JTable erzeugen

Alles was mit Swing und AWT zu tun hat

Moderatoren: wegus, Olek77

Antworten
sirtiger
Beiträge: 2
Registriert: 20.08.2013, 23:10

Neue Instanz von JTable erzeugen

Beitrag von sirtiger » 21.08.2013, 06:42

Hallo Leute,

ich habe ein kleines Problem. Ich möchte von einem JTable eine neue Instanz erstellen. Leider bekomme ich immer die Fehlermeldung:

no suitable constructor found for JTable(JTable)
constructor JTable.JTable(Object[][],Object[]) is not applicable
(actual and formal argument lists differ in length) usw...

Netbeans Standard

Code: Alles auswählen

        jTable2.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 [] {
                "Title 1", "Title 2", "Title 3", "Title 4"
            }
        ));
        jScrollPane2.setViewportView(jTable2);
Ich möchte es gerne so haben...

Code: Alles auswählen


        javax.swing.JScrollPane jScrollPane1 = new javax.swing.JScrollPane();
        javax.swing.JTable jTable1 = new javax.swing.JTable();

        setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);

        jTable2.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 [] {
                "Title 1", "Title 2", "Title 3", "Title 4"
            }
        ));
        
        JTable table = new JTable(jTable1) {                          // Hier wird der Fehler angezeigt......
            protected JTableHeader createDefaultTableHeader() {
                return new GroupableTableHeader(columnModel);
            }
        };
// Hier folgt noch Code....

Woran liegt das?
Mit diesem Code wäre es kein Problem, aber Netbeans läßt sich im CustomCode nicht auf die Änderung des JTable.setModel ein...

Code: Alles auswählen

        DefaultTableModel dm = new DefaultTableModel();
        dm.setDataVector(new Object[][]{
          {"null","null","null","null","null","null"},
          {"null","null","null","null","null","null"}},
        new Object[]{"1","2","3","4","5","6"});

        JTable table = new JTable( dm ) {
          protected JTableHeader createDefaultTableHeader() {
            return new GroupableTableHeader(columnModel);
          }
        };

SirTiGer

ebaumann
Beiträge: 288
Registriert: 22.01.2009, 08:53
Wohnort: Würzburg
Kontaktdaten:

Re: Neue Instanz von JTable erzeugen

Beitrag von ebaumann » 21.08.2013, 07:35

Die erste Zeile der Fehlermeldung beantwortet die Frage: JTable hat keinen Konstruktor mit einer JTable als Argument. Das lässt sich leicht überprüfen: Strg+O, JTable eingeben, öffnen und im Navigator erscheinen alle Konstruktoren von JTable. Alle Konstruktoren mit Argument nehmen im wesentlichen nur ein TableModel entgegen oder etwas, aus dem sich ein TableModel erzeugen lässt. Einen mit einer anderen JTable (Kopierkonstruktor) gibt es nicht.

sirtiger
Beiträge: 2
Registriert: 20.08.2013, 23:10

Re: Neue Instanz von JTable erzeugen

Beitrag von sirtiger » 21.08.2013, 07:39

Aha,

das würde heißen, daß ich den CustomCode in Netbeans nicht ändern kann.
Ich müßte dann schon selber ein JTable erzeugen?

SirTiGer

Antworten