Hallo Community,
ich habe mir ein Adressbuch in Java vorgenommen und die Variablen aus der Textdatei einzulesen ist kein Problem, allerdings hapert es dann an dem dynamischen Einfügen.
Ich habe ein Menü, eine Adressliste, eine Kontaktinformation und eine Seite zum Hinzufügen von Kontakten.
Beim Hinzufügen werden die Werte der Textfelder ausgelesen und in einer bestimmten Reihenfolege aufgelistet, separiert durch Semikolons.
Nun habe ich ein Problem damit es so auslesen zu lassen, dass man mit einer Vorlage für die Kontaktinformation alle Kontakte anzeigen zu lassen.
Mein Code:
Meine Textdatei:
Wie man sieht funktioniert es mit zwei Beispielpersonen, aber es ist sehr undynamisch und die adressliste soll einen neuen Button hinzufügen, wenn man eine neue Person addet.
Bitte um Hilfe!!
Danke im Voraus.
ich habe mir ein Adressbuch in Java vorgenommen und die Variablen aus der Textdatei einzulesen ist kein Problem, allerdings hapert es dann an dem dynamischen Einfügen.
Ich habe ein Menü, eine Adressliste, eine Kontaktinformation und eine Seite zum Hinzufügen von Kontakten.
Beim Hinzufügen werden die Werte der Textfelder ausgelesen und in einer bestimmten Reihenfolege aufgelistet, separiert durch Semikolons.
Nun habe ich ein Problem damit es so auslesen zu lassen, dass man mit einer Vorlage für die Kontaktinformation alle Kontakte anzeigen zu lassen.
Mein Code:
PHP:
package Adressbuch;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.io.BufferedReader;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
import java.io.PrintWriter;
import javax.swing.JButton;
import javax.swing.JFormattedTextField;
import javax.swing.JFrame;
import javax.swing.JLabel;
public class main {
static FileWriter writer;
static File file;
static File fi = new File("");
public static void main(String[] args){
file = new File(fi.getAbsolutePath()+"\\adressen.txt");
System.out.println(fi.getAbsolutePath());
//Menüfenster
final JFrame adden = new JFrame();
final JFrame menue = new JFrame();
final JFrame adressliste = new JFrame();
final JFrame kontakt = new JFrame();
final JFrame kontakt2 = new JFrame();
menue.setTitle("Adressbuch-Menü");
menue.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
menue.setLayout(null);
menue.setSize(400,600);
menue.setLocation(50,50);
menue.setResizable(false);
JLabel l1 = new JLabel("Mein Adressbuch");
JButton b1 = new JButton("Adressliste");
JButton b2 = new JButton("Neuer Eintrag");
// x y h l
l1.setBounds(138,20,200,40);
// x y l h
b1.setBounds(90,100,200,40);
b2.setBounds(90,200,200,40);
menue.add(b1);
menue.add(b2);
menue.add(l1);
menue.setVisible(true);
b1.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent ae) {
menue.setVisible(false);
adressliste.setVisible(true);
}});
b2.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent ae) {
menue.setVisible(false);
adden.setVisible(true);
}});
//Adressbuch
adressliste.setTitle("Adressbuch");
adressliste.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
adressliste.setLayout(null);
adressliste.setSize(400,600);
adressliste.setLocation(50,50);
adressliste.setResizable(false);
JLabel l2 = new JLabel("Mein Adressbuch");
JButton b3 = new JButton("Menü");
JButton b6 = new JButton();
JButton b10 = new JButton();
JLabel lv = new JLabel();
JLabel ln = new JLabel();
JLabel ls = new JLabel();
JLabel lh = new JLabel();
JLabel lp = new JLabel();
JLabel lw = new JLabel();
JLabel ltn = new JLabel();
JLabel lhn = new JLabel();
JLabel lgt = new JLabel();
JLabel lv2 = new JLabel();
JLabel ln2 = new JLabel();
JLabel ls2 = new JLabel();
JLabel lh2 = new JLabel();
JLabel lp2 = new JLabel();
JLabel lw2 = new JLabel();
JLabel ltn2 = new JLabel();
JLabel lhn2 = new JLabel();
JLabel lgt2 = new JLabel();
BufferedReader br = null;
try {
br = new BufferedReader(new FileReader(file));
String line = null;
if((line = br.readLine()).startsWith("1")) {
String[] parts = line.split(";");
String v = parts[0];
String n = parts[1];
String s = parts[2];
String h = parts[3];
String p = parts[4];
String w = parts[5];
String tn = parts[6];
String hn = parts[7];
String gt = parts[8];
v = v.substring(1);
b6.setText(v+" "+n);
b6.setBounds(1,60,200,40);
adressliste.add(b6);
kontakt.setTitle(v+n);
lv.setText(v);
ln.setText(n);
ls.setText(s);
lh.setText(h);
lp.setText(p);
lw.setText(w);
ltn.setText(tn);
lhn.setText(hn);
lgt.setText(gt);
kontakt.add(lv);
kontakt.add(ln);
kontakt.add(ls);
kontakt.add(lh);
kontakt.add(lp);
kontakt.add(lw);
kontakt.add(ltn);
kontakt.add(lhn);
kontakt.add(lgt);
}
if((line = br.readLine()).startsWith("2")) {
String[] parts = line.split(";");
String v2 = parts[0];
String n2 = parts[1];
String s2 = parts[2];
String h2 = parts[3];
String p2 = parts[4];
String w2 = parts[5];
String tn2 = parts[6];
String hn2 = parts[7];
String gt2 = parts[8];
v2 = v2.substring(1);
b10.setText(v2+" "+n2);
b10.setBounds(1,100,200,40);
adressliste.add(b10);
kontakt2.setTitle(v2+" "+n2);
lv2.setText(v2);
ln2.setText(n2);
ls2.setText(s2);
lh2.setText(h2);
lp2.setText(p2);
lw2.setText(w2);
ltn2.setText(tn2);
lhn2.setText(hn2);
lgt2.setText(gt2);
kontakt2.add(lv2);
kontakt2.add(ln2);
kontakt2.add(ls2);
kontakt2.add(lh2);
kontakt2.add(lp2);
kontakt2.add(lw2);
kontakt2.add(ltn2);
kontakt2.add(lhn2);
kontakt2.add(lgt2);
}
} catch(FileNotFoundException e) {
e.printStackTrace();
} catch(IOException e) {
e.printStackTrace();
} finally {
if(br != null) {
try {
br.close();
} catch(IOException e) {
e.printStackTrace();
}
}
}
l2.setBounds(138,20,200,40);
lv.setBounds(1,60,200,40);
ln.setBounds(200,60,195,40);
ls.setBounds(1,90,200,40);
lh.setBounds(200,90,195,40);
lp.setBounds(1,120,200,40);
lw.setBounds(200,120,195,40);
ltn.setBounds(1,150,200,40);
lhn.setBounds(200,150,195,40);
lgt.setBounds(1,180,395,40);
lv2.setBounds(1,60,200,40);
ln2.setBounds(200,60,195,40);
ls2.setBounds(1,90,200,40);
lh2.setBounds(200,90,195,40);
lp2.setBounds(1,120,200,40);
lw2.setBounds(200,120,195,40);
ltn2.setBounds(1,150,200,40);
lhn2.setBounds(200,150,195,40);
lgt2.setBounds(1,180,395,40);
b3.setBounds(1,1,100,40);
adressliste.add(l2);
adressliste.add(b3);
adressliste.setVisible(false);
b6.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent ae) {
adressliste.setVisible(false);
kontakt.setVisible(true);
}});
b10.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent ae) {
adressliste.setVisible(false);
kontakt2.setVisible(true);
}});
b3.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent ae) {
adressliste.setVisible(false);
menue.setVisible(true);
}});
//Hinzufügen
adden.setTitle("Adressbucheintrag hinzufügen");
adden.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
adden.setLayout(null);
adden.setSize(400,600);
adden.setLocation(50,50);
adden.setResizable(false);
JLabel l3 = new JLabel("Neuen Kontakt hinzufügen");
JButton b4 = new JButton("Menü");
JButton b5 = new JButton("Hinzufügen");
JLabel l4 = new JLabel("Name");
JLabel l5 = new JLabel("Vorname");
JLabel l6 = new JLabel("Straße");
JLabel l7 = new JLabel("Hausnummer");
JLabel l8 = new JLabel("PLZ");
JLabel l9 = new JLabel("Wohnort");
JLabel l10 = new JLabel("Telefonnummer");
JLabel l11 = new JLabel("Handynummer");
JLabel l12 = new JLabel("Geburtstag");
final JFormattedTextField tf1 = new JFormattedTextField();
final JFormattedTextField tf2 = new JFormattedTextField();
final JFormattedTextField tf3 = new JFormattedTextField();
final JFormattedTextField tf4 = new JFormattedTextField();
final JFormattedTextField tf5 = new JFormattedTextField();
final JFormattedTextField tf6 = new JFormattedTextField();
final JFormattedTextField tf7 = new JFormattedTextField();
final JFormattedTextField tf8 = new JFormattedTextField();
final JFormattedTextField tf9 = new JFormattedTextField("DD.MM.JJJJ");
l3.setBounds(125,20,200,40);
b4.setBounds(1,1,100,40);
l4.setBounds(1,60,200,40);
l5.setBounds(200,60,200,40);
tf1.setBounds(1,90,200,20);
tf2.setBounds(200,90,195,20);
l6.setBounds(1,120,200,40);
l7.setBounds(200,120,200,40);
tf3.setBounds(1,150,200,20);
tf4.setBounds(200,150,195,20);
l8.setBounds(1,180,200,40);
l9.setBounds(200,180,200,40);
tf5.setBounds(1,210,200,20);
tf6.setBounds(200,210,195,20);
l10.setBounds(1,240,200,40);
l11.setBounds(200,240,200,40);
tf7.setBounds(1,270,200,20);
tf8.setBounds(200,270,195,20);
l12.setBounds(1,300,200,40);
tf9.setBounds(1,330,395,20);
b5.setBounds(100,400,200,40);
adden.add(l3);
adden.add(b4);
adden.add(l4);
adden.add(l5);
adden.add(tf1);
adden.add(tf2);
adden.add(l6);
adden.add(l7);
adden.add(tf3);
adden.add(tf4);
adden.add(l8);
adden.add(l9);
adden.add(tf5);
adden.add(tf6);
adden.add(l10);
adden.add(l11);
adden.add(tf7);
adden.add(tf8);
adden.add(b5);
adden.add(l12);
adden.add(tf9);
adden.setVisible(false);
b4.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent ae) {
adden.setVisible(false);
menue.setVisible(true);
}});
b5.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent ae) {
String nachname = tf1.getText();
String vorname = tf2.getText();
String straße = tf3.getText();
String hausnummer = tf4.getText();
String plz = tf5.getText();
String wohnort = tf6.getText();
String telefonnummer = tf7.getText();
String handynummer = tf8.getText();
String geburtstag = tf9.getText();
int count = 0;
try {
BufferedReader in = new BufferedReader(new FileReader(file));
while ( in.readLine() != null ) {
count++;
}
System.out.println("Anzahl: " + count);
}
catch (Exception ex) {
ex.printStackTrace();
}
try
{
count = count+1;
writer = new FileWriter(file ,true);
writer.write(count+nachname+";"+vorname+";"+straße+";"+hausnummer+";"+plz+";"+wohnort+";"+telefonnummer+";"+handynummer+";"+geburtstag);
writer.write(System.getProperty("line.separator"));
writer.flush();
writer.close();
}
catch( IOException e )
{
e.printStackTrace();
}
tf1.setText("");
tf2.setText("");
tf3.setText("");
tf4.setText("");
tf5.setText("");
tf6.setText("");
tf7.setText("");
tf8.setText("");
tf9.setText("DD.MM.JJJJ");
}});
//Kontaktsheet 1
kontakt.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
kontakt.setLayout(null);
kontakt.setSize(400,600);
kontakt.setLocation(50,50);
kontakt.setResizable(false);
kontakt.setVisible(false);
JButton b7 = new JButton("<-");
b7.setBounds(1,1,100,40);
JButton b8 = new JButton("->");
b8.setBounds(300,1,100,40);
JButton b9 = new JButton("Zurück");
b9.setBounds(100,1,200,40);
kontakt.add(b7);
kontakt.add(b8);
kontakt.add(b9);
b9.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent ae) {
kontakt.setVisible(false);
adressliste.setVisible(true);
}});
b4.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent ae) {
}});
//Kontaktsheet 2
kontakt2.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
kontakt2.setLayout(null);
kontakt2.setSize(400,600);
kontakt2.setLocation(50,50);
kontakt2.setResizable(false);
kontakt2.setVisible(false);
JButton b11 = new JButton("<-");
b11.setBounds(1,1,100,40);
JButton b12 = new JButton("->");
b12.setBounds(300,1,100,40);
JButton b13 = new JButton("Zurück");
b13.setBounds(100,1,200,40);
kontakt2.add(b11);
kontakt2.add(b12);
kontakt2.add(b13);
b13.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent ae) {
kontakt2.setVisible(false);
adressliste.setVisible(true);
}});
b11.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent ae) {
}});
}
}
Meine Textdatei:
PHP:
1Max;Mustermann;Hauptstraße;1;1111;Musterstadt;11111/11111;1111...;01.01.1901
2Maxine;Mustermann;Hauptstraße;2;1111;Musterstadt;11111/111111;1111....;31.12.1900
Wie man sieht funktioniert es mit zwei Beispielpersonen, aber es ist sehr undynamisch und die adressliste soll einen neuen Button hinzufügen, wenn man eine neue Person addet.
Bitte um Hilfe!!
Danke im Voraus.