K
KiM
Gast
Hallo...
Ich möchte etwas aus einer CSV Datei auslesen und anzeigen lassen. Doch irgendwie funktioniert da was ´nicht. Wenn ich das programm ausführe ist die Tabelle leer. Hab auch schon ein breakpoint auf die readData() methode gesetzt und gemerkt dass er die gar nicht durchläuft. Kann mir jemand sagen, was ich falsch mache?
Kunde.java:
KundenTableModel.java
KundenView.java
InitKunden.java
Ich möchte etwas aus einer CSV Datei auslesen und anzeigen lassen. Doch irgendwie funktioniert da was ´nicht. Wenn ich das programm ausführe ist die Tabelle leer. Hab auch schon ein breakpoint auf die readData() methode gesetzt und gemerkt dass er die gar nicht durchläuft. Kann mir jemand sagen, was ich falsch mache?
Kunde.java:
Code:
package root;
public class Kunde {
private String name;
private String strasse;
private String ort;
private String tel;
Kunde(){
}
Kunde(String name,String strasse,String ort,String tel){
setName(name);
setStrasse(strasse);
setOrt(ort);
setTel(tel);
}
/**
* @return the name
*/
public String getName() {
return name;
}
/**
* @param name the name to set
*/
public void setName(String name) {
this.name = name;
}
/**
* @return the ort
*/
public String getOrt() {
return ort;
}
/**
* @param ort the ort to set
*/
public void setOrt(String ort) {
this.ort = ort;
}
/**
* @return the strasse
*/
public String getStrasse() {
return strasse;
}
/**
* @param strasse the strasse to set
*/
public void setStrasse(String strasse) {
this.strasse = strasse;
}
/**
* @return the tel
*/
public String getTel() {
return tel;
}
/**
* @param tel the tel to set
*/
public void setTel(String tel) {
this.tel = tel;
}
}
KundenTableModel.java
Code:
package root;
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
import java.util.ArrayList;
import javax.swing.JFileChooser;
import javax.swing.filechooser.FileFilter;
import javax.swing.table.AbstractTableModel;
public abstract class KundenTableModel extends AbstractTableModel {
ArrayList<Kunde> kundenListe = new ArrayList<Kunde>();
private String strCsvDatei;
private String separator;
private String filetype;
private String line;
private String[] temp;
private final String[] colHeads = {"Name:", "Straße:", "Ort:", "Telefon:"};
private int iNumFields = colHeads.length;
private int iNumRows = 0;
public JFileChooser open;
public JFileChooser save;
String openfile() {
open = new JFileChooser();
open.setDialogTitle("Zu öffnende Datei...");
open.setFileFilter(new FileFilter() {
public boolean accept(File f) {
return f.getName().toLowerCase().endsWith(".csv")
|| f.isDirectory();
}
public String getDescription() {
return filetype;
}
});
if (open.showOpenDialog(null) == JFileChooser.APPROVE_OPTION) {
return open.getSelectedFile().getPath();
} else {
return "";
}
}
String savefile() {
save.setDialogTitle("Speichern unter...");
save.setFileFilter(new FileFilter() {
public boolean accept(File f) {
return f.getName().toLowerCase().endsWith(".csv")
|| f.isDirectory();
}
public String getDescription() {
return filetype;
}
});
if (save.showSaveDialog(null) == JFileChooser.APPROVE_OPTION) {
return save.getSelectedFile().getPath();
} else {
return "";
}
}
public KundenTableModel() {
readData();
}
public void readData() {
strCsvDatei = openfile();
BufferedReader datei;
try {
datei = new BufferedReader(new FileReader(strCsvDatei));
while ((line = datei.readLine()) != null) {
temp = null;
temp = line.split(separator);
kundenListe.add(new Kunde(temp[0], temp[1], temp[2], temp[3]));
}
datei.close();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
iNumRows = kundenListe.size();
}
public void writeData() {
strCsvDatei = savefile();
BufferedWriter datei;
try {
datei = new BufferedWriter(new FileWriter(strCsvDatei));
for (int i = 0; i < kundenListe.size(); i++) {
line = (((Kunde) kundenListe.get(i)).getName() + separator);
line += (((Kunde) kundenListe.get(i)).getStrasse() + separator);
line += (((Kunde) kundenListe.get(i)).getOrt() + separator);
line += ((Kunde) kundenListe.get(i)).getTel();
datei.write(line);
datei.newLine();
line = "";
}
datei.close();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
public void insertKunde() {
kundenListe.add(new Kunde());
iNumRows = kundenListe.size();
fireTableRowsInserted(iNumRows, iNumRows);
}
public void deleteKunde(int row) {
// TODO Auto-generated method stub
if (row < 0 || row > iNumRows) {
} else {
kundenListe.remove(row);
iNumRows = getRowCount();
super.fireTableRowsDeleted(0, row);
}
}
/*
* (non-Javadoc)
*
* @see javax.swing.table.AbstractTableModel#getColumnClass(int)
*/
@Override
public Class<?> getColumnClass(int columnIndex) {
// TODO Auto-generated method stub
return String.class;
}
/*
* (non-Javadoc)
*
* @see javax.swing.table.AbstractTableModel#getColumnName(int)
*/
@Override
public String getColumnName(int columnIndex) {
// TODO Auto-generated method stub
return colHeads[columnIndex];
}
/*
* (non-Javadoc)
*
* @see javax.swing.table.AbstractTableModel#isCellEditable(int, int)
*/
@Override
public boolean isCellEditable(int row, int col) {
// TODO Auto-generated method stub
return true;
}
/*
* (non-Javadoc)
*
* @see javax.swing.table.AbstractTableModel#setValueAt(java.lang.Object,
* int, int)
*/
@Override
public void setValueAt(Object value, int row, int col) {
// TODO Auto-generated method stub
switch (col) {
case 0:
((Kunde) kundenListe.get(row)).setName((String) value);
break;
case 1:
((Kunde) kundenListe.get(row)).setStrasse((String) value);
break;
case 2:
((Kunde) kundenListe.get(row)).setOrt((String) value);
break;
case 3:
((Kunde) kundenListe.get(row)).setTel((String) value);
break;
default:
}
super.fireTableCellUpdated(row, col);
}
/*
* (non-Javadoc)
*
* @see javax.swing.table.TableModel#getColumnCount()
*/
public int getColumnCount() {
// TODO Auto-generated method stub
return 0;
}
/*
* (non-Javadoc)
*
* @see javax.swing.table.TableModel#getRowCount()
*/
public int getRowCount() {
// TODO Auto-generated method stub
return iNumRows;
}
/*
* (non-Javadoc)
*
* @see javax.swing.table.TableModel#getValueAt(int, int)
*/
public Object getValueAt(int row, int col) {
// TODO Auto-generated method stub
String temp;
switch (col) {
case 0:
temp = ((Kunde) kundenListe.get(row)).getName();
break;
case 1:
temp = ((Kunde) kundenListe.get(row)).getStrasse();
break;
case 2:
temp = ((Kunde) kundenListe.get(row)).getOrt();
break;
case 3:
temp = ((Kunde) kundenListe.get(row)).getTel();
break;
default:
temp = null;
}
return temp;
}
}
KundenView.java
Code:
package root;
import java.awt.BorderLayout;
import java.awt.Container;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.JTable;
public class KundenView extends JFrame {
private JScrollPane scroll;
private JPanel bt;
private KundenTableModel customTableMod;
private JTable table;
private JButton btDel;
private JButton btSave;
private JButton btNew;
private Container con;
public KundenView() {
scroll = new JScrollPane();
table = new JTable(customTableMod);
btDel = new JButton("Löschen");
btSave = new JButton("Speichern");
btNew = new JButton("Neuer Eintrag");
con = getContentPane();
bt = new JPanel();
scroll.add(table);
bt.add(btDel);
bt.add(btNew);
bt.add(btSave);
con.setLayout(new BorderLayout());
con.add(scroll, BorderLayout.CENTER);
con.add(bt, BorderLayout.SOUTH);
addWindowListener(new WindowAdapter() {
public void windowClosing(final WindowEvent e) {
exit();
}
});
ActionListener action = null;
btDel.addActionListener(action);
btNew.addActionListener(action);
btSave.addActionListener(action);
pack();
setVisible(true);
}
public void actionPerformed(ActionEvent action) {
if (action.getSource() == btDel) {
customTableMod.deleteKunde(table.getSelectedRow());
}
if (action.getSource() == btNew) {
customTableMod.insertKunde();
}
if (action.getSource() == btSave) {
customTableMod.writeData();
}
}
private void exit() {
customTableMod.writeData();
System.exit(0);
}
// private void initSelectionModel() {
//
// }
//
// private void errorDialog(String message) {
//
// }
}
InitKunden.java
Code:
package root;
public class InitKunden {
public static void main(String[] args){
new KundenView();
}
}