Also arbeite ich gerade an einem Projekt und ich brauche eine JTable für die Anzeige von Rechnungen. Die Rechnungen werden auf einer Textdatei imErstellen Sie ein 2D-Array aus Textdatei/Array
Format gespeichertInvoiceID, InvoiceDate, InvoiceCustomer, InvoiceComplete
(int, String, String, boolean)
Für die anderen Teile meines Programm wird jede Zeile eingelesen und ein Rechnungsobjekt erstellt.
Wie auch immer, für meine JTable bin ich nicht sicher, wie man ein 2D-Array mit den Textdateidaten erstellt. Ich dachte daran, dass ich das vielleicht zuerst versuchen würde, indem ich ein Array erstelle, bin mir aber nicht wirklich sicher. Das 2D-Array müsste vom Typ Objekt sein, da es die Rechnungen speichert, so dass ich ein Kontrollkästchen in der JTable haben kann.
Ich habe gerade gerade eine leere Klasse mit einer JTable für diese Aufgabe. Jeder Rat würde geschätzt werden. Dank
UPDATE:
JPanel invoiceViewPanel= new JPanel(null); //layout
Object data[][]= new Object[4][10];
String columnHeaders[]={"Invoice ID","Invoice Name","Customer", "Complete?"};
DefaultTableModel model = new DefaultTableModel(data, columnHeaders) {
boolean[] Editable= new boolean[]{
false, false, false, true
};
public boolean isCellEditable(int rowIndex, int columnIndex) {
return editableCells[columnIndex];
}
@Override
public Class<?> getColumnClass(int columnIndex)
{
return columnClass[columnIndex];
}
};
JTable table=new JTable(model);
JScrollPane tableContainer=new JScrollPane(table);
final Class[] columnClass = new Class[]
{
Integer.class, String.class, String.class, Boolean.class
};
public void launch()
{
this.setLayout(new FlowLayout());
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
this.add(invoiceViewPanel);
invoiceViewPanel.add(tableContainer);
createObject();
this.add(tableContainer);
this.setTitle("Invoices");
this.setSize(500,600);
this.setVisible(true);
this.setResizable(false);
}
public void tableData()
{
try
{
FileReader reader = new FileReader("Invoices.txt");
BufferedReader bReader = new BufferedReader(reader);
String sReadline = bReader.readLine();
int x=0;
while(sReadline!=null)
{
String[] invoiceData= sReadline.split(",");
data[x][0]=Integer.parseInt(invoiceData[0]);
data[x][1]=invoiceData[1];
data[x][2]=invoiceData[2];
data[x][3]=Boolean.parseBoolean(invoiceData[1]);
x=x+1;
sReadline=bReader.readLine();//sreadline
}
}
catch (Exception e)
{
System.out.println(e);
}
}
Ich habe zwar einzeln Zuordnung der Array-Werte versucht, entweder ich eine ArrayIndexOutOfBoundsException oder die JTable nur kommt immer noch als leere
'Object [] [] table = new Object [n] [4];' Da Sie den Typen jeder Spalte kennen, können Sie sie werfen entsprechend – rafid059