2016-04-12 6 views
0

Dieser Code nimmt ein Objekt auf und ich versuche, eine jtable mit drei Spalten zu machen, die die ID, den Vornamen und den Nachnamen des Objekts anzeigt. Gerade jetzt geht die ID über die Reihe und nicht über die Kolonne. Wie ändere ich es?Element zu verschiedenen Spalten in Jtable hinzufügen

public class Main { 
    private RealPayroll obj; 

public Main(RealPayroll obj1){ 
    obj=obj1; 
} 

public void run() { 
obj.runPayroll(4); 
Vector rowData = new Vector(); 
String id[]=new String[50]; 
String firstname[]=new String[50]; 
String lastname[]=new String[50]; 


for (int i=0;i<obj.getPaySlips().length;i++) 
{ 
    id[i]=String.valueOf(obj.getPaySlips()[i].getId()); 
    firstname[i]=obj.getPaySlips()[i].getFirstName(); 
    lastname[i]=obj.getPaySlips()[i].getLastName(); 
} 

Vector rowOne=new Vector(); 
for (int i= 0; i < obj.getPaySlips().length; i++) { 
    Vector colData = new Vector(Arrays.asList(id[i])); 
    rowOne.add(colData); 
} 

Vector rowTwo=new Vector(); 
for (int i = 0; i < obj.getPaySlips().length; i++) { 
    Vector col2Data = new Vector(Arrays.asList(firstname[i])); 
    rowTwo.add(col2Data); 
} 

String[] columnNames = {"Id","FirstName","LastName"}; 
rowData.addElement(rowOne); 
rowData.addElement(rowTwo); 
Vector columnNamesV = new Vector(Arrays.asList(columnNames)); 

JTable table = new JTable(rowData, columnNamesV); 
table.setBounds(5,89,280,471); 
JFrame f = new JFrame(); 
f.setSize(300, 300); 
f.add(new JScrollPane(table)); 
f.setVisible(true); 

} }

Antwort

0

Die grundlegende Logik sollte wie folgt sein:

  1. eine leere DefaultTableModel erstellen.
  2. Fügen Sie dem Tabellenmodell einzelne Datenzeilen hinzu.
  3. Erstellen Sie die Tabelle:

Pseudo-Code:

String[] columnNames = {"Id","FirstName","LastName"}; 
DefaultTableModel model = new DefaultTableModel(columnNames, 0); 

for (all the items in the payroll) 
{ 
    Vector row = new Vector(); 
    row.addElement(payroll id); 
    row.addElement(payroll firstName); 
    row.addElement(payroll lastName); 
    model.addRow(row); 
} 

JTable table = new JTable(model);