Tach,
hab zwei Probleme; Einmal will ich die ArrayList in eine Text Datei ohne die beiden Klammern [ ] schreiben. Das zweite Problem ist, dass ich Geburtstag gerne als Date abspeichern möchte, den Befehl aber nicht kenne um ein Datum aus einem JTextField auszulesen. Wie z.B. bei Strings (.getText())
Ich hoffe auf eine schnell Antwort.
Lg Spirit
hab zwei Probleme; Einmal will ich die ArrayList in eine Text Datei ohne die beiden Klammern [ ] schreiben. Das zweite Problem ist, dass ich Geburtstag gerne als Date abspeichern möchte, den Befehl aber nicht kenne um ein Datum aus einem JTextField auszulesen. Wie z.B. bei Strings (.getText())
Ich hoffe auf eine schnell Antwort.
Lg Spirit
Java:
package studentenverwaltung;
import java.awt.BorderLayout;
import java.awt.Component;
import java.awt.FlowLayout;
import java.awt.GridLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.io.BufferedWriter;
import java.io.FileNotFoundException;
import java.io.FileWriter;
import java.io.IOException;
import java.util.Date;
import java.util.ArrayList;
import javax.swing.JButton;
import javax.swing.JDialog;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JTextField;
import javax.swing.WindowConstants;
public class StudentenDB extends JFrame {
private JLabel num = new JLabel("Matrikelnummer: ");
private JLabel vorname = new JLabel("Vorname: ");
private JLabel nachname = new JLabel("Nachname: ");
private JLabel geb = new JLabel("Geburtsdatum:");
private JLabel anzahl = new JLabel("Anzahl Studenten: ");
private JLabel size = new JLabel();
private JTextField nummer = new JTextField();
private JTextField vname = new JTextField();
private JTextField nname = new JTextField();
private JTextField bday = new JTextField();
private JButton ok = new JButton("OK");
private JButton save = new JButton("Speichern");
ArrayList<Student> studenten = new ArrayList<Student>();
private static String result = "";
public StudentenDB(){
super("StudentenDB");
this.setLayout( new BorderLayout());
this.add(makeNorth(), BorderLayout.NORTH);
this.add(makeCenter(), BorderLayout.CENTER);
this.add(makeSouth(), BorderLayout.SOUTH);
this.setSize(500, 200);
organizeListener();
this.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
this.setVisible(true);
}
private void organizeListener() {
ok.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent arg0) {
if(!nummer.getText().isEmpty() &&
!vname.getText().isEmpty() &&
!nname.getText().isEmpty() &&
!bday.getText().isEmpty()) {
studenten.add(addJTextField(nummer,vname,nname,bday));
size.setText(studenten.size() + "");
nummer.setText("");
vname.setText("");
nname.setText("");
bday.setText("");
} else {
error();
}
}
});
save.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent arg0) {
for(int i = 0 ; i<= studenten.size(); i++) {
result = studenten.toString();
writeToFile("Studis.txt");
result = "";
}
}
});
}
public static void writeToFile(String filename) {
BufferedWriter bufferedWriter = null;
try {
//Erzeugt das BufferedWriter Objekt
bufferedWriter = new BufferedWriter(new FileWriter(filename));
//Beginnt hier zu schreiben
bufferedWriter.write(result);
} catch (FileNotFoundException ex) {
ex.printStackTrace();
} catch (IOException ex) {
ex.printStackTrace();
} finally {
//Schließt den BufferedWriter
try {
if (bufferedWriter != null) {
bufferedWriter.flush();
bufferedWriter.close();
}
} catch (IOException ex) {
ex.printStackTrace();
}
}
}
private void error() {
JDialog temp = new JDialog(this, "Status");
String msg = "Bitte alle Felder Ausfüllen!";
temp.add(new JLabel(msg));
temp.setLocationRelativeTo(this);
temp.setModal(true);
temp.setResizable(false);
temp.setSize(160,100);
temp.setVisible(true);
}
private Component makeSouth() {
JPanel pnl = new JPanel();
pnl.setLayout(new BorderLayout());
pnl.add(anzahl, BorderLayout.WEST);
pnl.add(size, BorderLayout.EAST);
return pnl;
}
private Student addJTextField(JTextField a, JTextField b,
JTextField c, JTextField d) {
String a1 = a.getText();
String b1 = b.getText();
String c1 = c.getText();
String d1 = d.getText();
Student s1 = new Student(a1, b1, c1 , d1 );
return s1;
}
private Component makeCenter() {
JPanel pnl = new JPanel();
pnl.setLayout(new BorderLayout());
pnl.add(makeCenterSouth(), BorderLayout.SOUTH);
return pnl;
}
private Component makeCenterSouth() {
JPanel pnl = new JPanel();
pnl.setLayout(new FlowLayout());
pnl.add(ok);
pnl.add(save);
return pnl;
}
private Component makeNorth() {
JPanel pnl = new JPanel();
pnl.setLayout(new GridLayout(4, 2));
pnl.add(num);
pnl.add(nummer);
pnl.add(vorname);
pnl.add(vname);
pnl.add(nachname);
pnl.add(nname);
pnl.add(geb);
pnl.add(bday);
return pnl;
}
public static void main(String[] args) {
new StudentenDB();
}
}
Java:
package studentenverwaltung;
import java.util.Date;
public class Student {
private String matrikelnummer;
private String vorname;
private String nachname;
private String geburtsdatum;
public Student(String matrikelnummer, String vorname, String nachname,
String geburtsdatum) {
super();
this.matrikelnummer = matrikelnummer;
this.vorname = vorname;
this.nachname = nachname;
this.geburtsdatum = geburtsdatum;
}
public String getMatrikelnummer() {
return matrikelnummer;
}
public String getVorname() {
return vorname;
}
public String getNachname() {
return nachname;
}
public String getGeburtsdatum() {
return geburtsdatum;
}
public String toString() {
String result;
result = getMatrikelnummer() + ", " + getVorname() + ", "
+ getNachname() + ", " + getGeburtsdatum()
+ System.getProperty("line.separator");
return result;
}
}