Ich habe ein Konsolenprogramm für das Verarbeiten von Kontaktinformationen geschrieben und wollte eine
grafische Oberfläche dafür haben. Ich habe es auch versucht bin aber z.B. an Benutzereingaben gescheitert.
Hier die Klassen:
Contact:
Main:
Entrie:
und Reader:
Wie würde eine zusätzliche Klasse Mainframe aussehen und wie sähen die Änderungen in den restlichen Klassen aus?
P.S.
Ich bin Anfänger und habe keine Erfahrung mit GUI's. Also bitte ausführlich Erklären
Danke
grafische Oberfläche dafür haben. Ich habe es auch versucht bin aber z.B. an Benutzereingaben gescheitert.
Hier die Klassen:
Contact:
Java:
import java.util.*;
public class Contact
{
public String newContact()
{
StringBuilder entrie = new StringBuilder();
System.out.println("Vorname:");
String firstName = new Scanner(System.in).nextLine() + '*';
entrie.append(firstName);
System.out.println("Name:");
String name = new Scanner(System.in).nextLine() + '*';
entrie.append(name);
System.out.println("Straße:");
String street = new Scanner(System.in) .nextLine() + '*';
entrie.append(street);
System.out.println("Hausnummer");
String housenumber = new Scanner(System.in) .nextLine() + '*';
entrie.append(housenumber);
System.out.println("PLZ:");
String plz = new Scanner(System.in).nextLine() + '*';
entrie.append(plz);
System.out.println("Wohnort:");
String placeOfResidence = new Scanner(System.in).nextLine() + '*';
entrie.append(placeOfResidence);
return entrie + "|";
}
}
Main:
Java:
import java.util.*;
import java.io.*;
public class Main
{
public static void main(String[] args)
{
final String cNewContact = "newcontact";
final String cHelp = "help";
final String cShow = "show";
final String cDelete = "delete";
final String cSave = "save";
final String cDeleteAdressBook = "deleteadressbook";
final String cExit = "exit";
String contact = "";
File f = new File("contacts.txt");
boolean validComment = false;
while(true)
{
System.out.println("Befehl eingeben:");
String userInput = new Scanner (System.in).nextLine();
if (userInput.equalsIgnoreCase(cHelp))
{
validComment = true;
System.out.println("NEWCONTACT = Neuen Kontakt Anlegen\nHELP = Befehle Anzeigen Lassen\nSHOW = Zeigt Aktuelles Adressbuch\nDELETEADRESSBOOK = Löscht Geamtes Adressbuch\nSAVE = Speichert Zuletzt Eingegebene Kontaktdaten\nEXIT = Beendet Die Sitzung");
}
if(userInput.equalsIgnoreCase(cNewContact))
{
validComment = true;
Contact c = new Contact();
contact = c.newContact();
System.out.println("Kotaktdaten Aufgenommen. Zum Speichern SAVE Anwenden");
}
if(userInput.equalsIgnoreCase(cSave))
{
validComment = true;
Entries e = new Entries();
boolean finished = e.save(contact, f);
if(finished == true)
{
System.out.println("Speichern Erfolgreich");
}
else
{
System.out.println("Fehler Beim Speichern");
}
}
if(userInput.equalsIgnoreCase(cShow))
{
validComment = true;
Reader r = new Reader();
String fileContacts = r.read(f);
String output = r.filterText(fileContacts);
System.out.println(output);
}
if(userInput.equalsIgnoreCase(cDeleteAdressBook))
{
validComment = true;
System.out.println("Sie Sind Dabei Ihr Gesamtes Adressbuch Zu Löschen. Bestätigen Sie Mit Ja/ Brechen Sie Ab Mit Nein");
String confirmation = new Scanner(System.in) .nextLine();
if(confirmation.equalsIgnoreCase("Ja"))
{
f.delete();
}
}
if(userInput.equalsIgnoreCase(cExit))
{
System.out.println("Sie Sind Dabei Das Adressbuch Zu Schließen.\nBestätigen Sie Mit Ja/Brechen Sie Ab Mit Nein \nAlle Nichtgespeicherten Daten Gehen Verloren.");
String exitConfirmation = new Scanner(System.in).nextLine();
if(exitConfirmation.equalsIgnoreCase("Ja"))
{
break;
}
}
if(userInput.equalsIgnoreCase(cDelete))
{
validComment = true;
}
if(validComment == false)
{
System.out.println("Ungültiger Befehl. Geben Sie HELP für Hilfe ein");
}
}
}
}
Entrie:
Java:
import java.io.*;
public class Entries
{
Writer w;
public boolean save(String wst, File f)
{
if(f.exists() && f != null && f.canWrite())
{
try
{
w = new FileWriter(f, true); //f: File to write; true: appends strings
w.write(wst);
}
catch(IOException e)
{
return false; //Gives out misstake in Main class
}
finally
{
try{w.close();} catch(IOException e){System.err.println("Error closing writer");return false;} //Gives out mistake in Main clas
}
return true;
}
else
{
try
{
File file = new File("contacts.txt");
file.createNewFile();
Entries e = new Entries();
e.save(wst, f);
}
catch(IOException e)
{
System.err.println("Error creating file");
}
return true;
}
}
}
und Reader:
Java:
import java.io.*;
public class Reader
{
FileReader fr = null;
public String read(File f)
{
StringBuilder s = new StringBuilder();
try
{
for(int c = 0;(c = fr.read() ) != -1;)
{
s.append( (char) c );
}
}
catch(IOException e)
{
System.err.println("Fehler Beim Lesen Des Kontaktbuches");
}
finally {try{fr.close();}catch(IOException | NullPointerException e){System.err.println("Fehler Beim Schließen des Readers");}}
return s.toString();
}
public String filterText(String s)
{
String s1 = s;
String s2 = s1.replace("*","\n");
String s3 = s2.replace("|", "\n");
return s3;
}
}
Wie würde eine zusätzliche Klasse Mainframe aussehen und wie sähen die Änderungen in den restlichen Klassen aus?
P.S.
Ich bin Anfänger und habe keine Erfahrung mit GUI's. Also bitte ausführlich Erklären
Danke
Zuletzt bearbeitet: