Ich versuche, alle Daten aus einer JSON-Datei und füllen Sie die Daten zu einem JTable, ich bekomme bereits die Daten aus der JSON-Datei und Ausdruck, aber ich kann nicht die Daten auf die JTable wenn ich versuchen Sie, die Daten auf der Jtable innerhalb der Schleife zu füllen Ich ended multipliziert den Rahmen in die Daten. Bitte helfen Sie mir dabei mein Code sind:Füllen JTabelle mit lokalen JSON-Datei
Ich habe bereits alle benötigten Glas importiert.
public Main(){
super(new GridLayout(1,0));
BufferedReader br = null;
JSONParser parser = new JSONParser();
String inputline;
try {
br = new BufferedReader(new FileReader("/Users/lyod/Documents/sample.json"));
try {
String id = null,
component = null,
title = null,
lat = null,
lng = null,
cost = null,
status = null;
Object[][] data;
while ((inputline = br.readLine()) != null) {
JSONArray a = (JSONArray) parser.parse(inputline);
String[] columns = new String[] {
"Id",
"Title",
"Component",
"LAT",
"LNG",
"Cost"
};
for (Object o : a) {
JSONObject sample = (JSONObject) o;
id = (String) sample.get("id");
component = (String) sample.get("component");
title = (String) sample.get("title");
lat = (String) sample.get("lat");
lng = (String) sample.get("lng");
cost = (String) sample.get("cost");
status = (String) sample.get("status");
Object[][] data = new Object[][] {
{id,title,component,lat,lng,cost, false },
};
}
JTable table = new JTable(data, columns);
add(new JScrollPane(table));
JFrame frame = new JFrame("test v2");
frame.add(table);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setVisible(true);
}
} catch (IOException e) {
e.printStackTrace();
} catch (ParseException e) {
e.printStackTrace();
}
} catch (FileNotFoundException e) {
e.printStackTrace();
}
}
public static void main(String args[]){
SwingUtilities.invokeLater(new Runnable() {
@Override
public void run() {
new Main();
}
});
}
'wenn ich versuche, die Daten auf der Jtable innerhalb der Schleife zu füllen, habe ich am Ende multipliziert den Rahmen insted die Daten - genau. Warum würden Sie für jede Iteration der Schleife eine neue Tabelle und einen neuen Rahmen erstellen? Sie sollten nur eine Tabelle und einen Rahmen erstellen, NACHDEM die Schleife beendet ist. Die grundlegende Logik besteht also darin, vor dem Start der Schleife ein leeres DefaultTableModel zu erstellen. Innerhalb der Schleife verwenden Sie dann die Methode 'addRow (...)' des DefaultTableModel, um dem Modell Daten hinzuzufügen. Nachdem die Schleife beendet ist, verwenden Sie das TableModel, um die Tabelle zu erstellen und die Tabelle dem Rahmen hinzuzufügen. – camickr
kann ich dann auf die Daten innerhalb der Schleife zugreifen? – LyodMichael
Danke ich habe es verstanden! – LyodMichael