Vector Datenstruktur für JTable will nicht :-(

Status
Nicht offen für weitere Antworten.

Doomrunner

Mitglied
Hi,

ich habe mal versucht mir ne Vector Datenstruktur für den JTable aufzubauen. Dabei sind dann 2 Vectoren in einander verschachtelt. Die getValueAt Methode scheint dann aber Probleme zu bereiten.

Wisst ihr wieso, oder was ich anders machen könnte?

Code:
import javax.swing.*;
import javax.swing.event.*;
import java.awt.*;
import java.awt.event.*;
import javax.swing.table.*;
import java.util.*;
/**
 *
 * @author  Daniel
 */
public class kundendb 
extends javax.swing.JInternalFrame 
implements TableModelListener
{
    
    public kundendb() {
        initComponents();
    }
    
    private void initComponents() {
        javax.swing.JTable jTable1;
        
        datenstruktur daten = new datenstruktur();
        // Einfügen einiger Testdaten:
        for(int i = 1; i <= 10; i++) {
            Vector spalte = new Vector();
            spalte.addElement("neu1");
            spalte.addElement("neu2");
            spalte.addElement("neu3");
            daten.addElement(spalte);
        }
	
         JTable table = new JTable(daten);
	JScrollPane scrollPane = new JScrollPane(table);
	table.setPreferredScrollableViewportSize(new Dimension(500, 70));
	table.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);
	
        getContentPane().add(scrollPane, java.awt.BorderLayout.CENTER);

        pack();
    }
}

class datenstruktur extends AbstractTableModel {
        private String[] columnNames = {"First Name2",
                                        "Last Name",
                                        "Sport",
                                        "# of Years",
                                        "Vegetarian"};
        
        private Vector data = new Vector();
        
        public void addElement(Vector Spalten) {
            data.addElement(Spalten);
        }
        
        public int getColumnCount() {
            return columnNames.length;
        }
        
        public int getRowCount() {
            return data.size();
        }
        
        public Object getValueAt(int rowIndex, int columnIndex) {
            return (Object)((Vector)data.elementAt(rowIndex)).elementAt(columnIndex);
        }
}
 
mir scheint, dass die länge vom String columnNames nichts mit der länge der eingefügten vektoren zu tun hat. so kommt es sicher zu indexoutofbound-ausnahmen, oder?

falls nicht, was für "probleme" bereitet denn wer wo und wie äußert sich das :?:
 
Ein Vector aus Vectoren ist immer irgendwie unschön.
Eine Zeile Deiner JTable sagt doch bestimmt was aus (ist irgendwas Greifbares).
Warum machst Du da nicht eine Klasse raus, praktisch Dein Datenobjekt und
packst die in einen Vector. Kann man viel besser lesen und ist intuitiver.

Grüße,
Mick
 
Es lag wirklich daran, dass ich mehr Überschriften hatte.

Ich hätte gedacht, dass der dann Intuitiv die letzten Spalten leer hält...

thx
 
Ich habe vorher jahrelang in Perl Programmiert...

Du glaubst gar nicht wie dumm einem da manchmal der Java-Compiler vorkommt :lol:
 
Doomrunner hat gesagt.:
Du glaubst gar nicht wie dumm einem da manchmal der Java-Compiler vorkommt :lol:
:shock:

Dann benutz mal eine IDE wie Eclipse...
Danach wird dir der Perl-Compiler beschränkt vorkommen :lol:
 
Status
Nicht offen für weitere Antworten.

Neue Themen


Zurück
Oben