Hallo! Kann mir bitte jemand weiter helfen?
Zu meinem Programm: daten werden in eine ArrayList geschrieben, welche in eine Textdatei gespeichert wird (funktioniert). Daten aus der Datei hochladen kann ich auch .
Mein Problem: was ich nicht kann diese Daten in einer JTable ausgeben.
Brauche ich die Methode fireTableDataChanged() dazu?
public class Tabelle extends JFrame {
public static JTable table;
TModel model;
class TModel extends AbstractTableModel{
private String[] spalten = {"Kundennummer", "Kundenname", "Bezeichnung", "Menge", "Preis"};
ArrayList list = new ArrayList();
public String getColumnName(int col) {
return spalten[col];
}
public int getRowCount() {
return list.size();
}
public int getColumnCount() {
return spalten.length;
}
public boolean isCellEditable(int row, int col) {
return false;
}
public Object getValueAt(int row, int col) {
Auftrag a2 = (kundenauftrag.Auftrag)list.get(row);
switch (col){
case 0:
return a2.getNR();
case 1:
return a2.getName();
case 2:
return a2.getBezeichnung();
case 3:
return a2.getMenge();
case 4:
return a2.getPreis();
default:
return null;
}
}
public void setValueAt(Object value, int row, int col){
Auftrag auftrag = (Auftrag) list.get(row) ;//? Warum cast zu Auftrag?
switch (col){
case 0:
auftrag.setNR((String)value);
break;
case 1:
auftrag.setName((String)value);
break;
case 2:
auftrag.setBezeichnung((String)value);
break;
case 3:
auftrag.setMenge((String)value);
break;
case 4:
auftrag.setPreis((String)value);
break;
default:
}
}
}
public Tabelle(){
super ("Tabelle");
setDefaultCloseOperation (JFrame.EXIT_ON_CLOSE);
setSize(400,200);
model =new TModel();
table = new JTable(model);
add(table,BorderLayout.CENTER);
JScrollPane scrollpane = new JScrollPane(table);
add (scrollpane);
JPanel buttonPanel = new JPanel();
buttonPanel.setLayout (new FlowLayout (FlowLayout.CENTER));
add(buttonPanel, BorderLayout.SOUTH);
JButton schliessen = new JButton("Schließen");
buttonPanel.add(schliessen);
JButton loeschen = new JButton("Löschen");
buttonPanel.add(loeschen);
}
public static void main(String[] args) {
new Tabelle().setVisible(true);
}
Zu meinem Programm: daten werden in eine ArrayList geschrieben, welche in eine Textdatei gespeichert wird (funktioniert). Daten aus der Datei hochladen kann ich auch .
Mein Problem: was ich nicht kann diese Daten in einer JTable ausgeben.
Brauche ich die Methode fireTableDataChanged() dazu?
public class Tabelle extends JFrame {
public static JTable table;
TModel model;
class TModel extends AbstractTableModel{
private String[] spalten = {"Kundennummer", "Kundenname", "Bezeichnung", "Menge", "Preis"};
ArrayList list = new ArrayList();
public String getColumnName(int col) {
return spalten[col];
}
public int getRowCount() {
return list.size();
}
public int getColumnCount() {
return spalten.length;
}
public boolean isCellEditable(int row, int col) {
return false;
}
public Object getValueAt(int row, int col) {
Auftrag a2 = (kundenauftrag.Auftrag)list.get(row);
switch (col){
case 0:
return a2.getNR();
case 1:
return a2.getName();
case 2:
return a2.getBezeichnung();
case 3:
return a2.getMenge();
case 4:
return a2.getPreis();
default:
return null;
}
}
public void setValueAt(Object value, int row, int col){
Auftrag auftrag = (Auftrag) list.get(row) ;//? Warum cast zu Auftrag?
switch (col){
case 0:
auftrag.setNR((String)value);
break;
case 1:
auftrag.setName((String)value);
break;
case 2:
auftrag.setBezeichnung((String)value);
break;
case 3:
auftrag.setMenge((String)value);
break;
case 4:
auftrag.setPreis((String)value);
break;
default:
}
}
}
public Tabelle(){
super ("Tabelle");
setDefaultCloseOperation (JFrame.EXIT_ON_CLOSE);
setSize(400,200);
model =new TModel();
table = new JTable(model);
add(table,BorderLayout.CENTER);
JScrollPane scrollpane = new JScrollPane(table);
add (scrollpane);
JPanel buttonPanel = new JPanel();
buttonPanel.setLayout (new FlowLayout (FlowLayout.CENTER));
add(buttonPanel, BorderLayout.SOUTH);
JButton schliessen = new JButton("Schließen");
buttonPanel.add(schliessen);
JButton loeschen = new JButton("Löschen");
buttonPanel.add(loeschen);
}
public static void main(String[] args) {
new Tabelle().setVisible(true);
}
Zuletzt bearbeitet: