Kommentare formatiert

This commit is contained in:
BerdanInformatik123 2021-05-16 20:56:13 +02:00
parent c1bb7a2070
commit c9a44df33b

View file

@ -20,17 +20,16 @@ import java.awt.event.ActionEvent;
/**
* Hauptklasse des Clients
*
* @version 0.1.3
* @author berdan
*/
public class Client1 extends JFrame {
/*
Hier werden Objekte und Variablen deklariert, damit diese
in allen Methoden genutzt werden können.
/**
* Hier werden Objekte und Variablen deklariert, damit diese in allen
* Methoden genutzt werden können.
*/
private static JPanel contentPane;
JTextField txtMessage;
@ -48,11 +47,13 @@ public class Client1 extends JFrame {
public static int anzahlRekursionen = 0;
public static Message temp = new Message("leer", "leer");
/*
In der main Methode wird das GUI erstellt und die
start() Methode aufgerufen.
/**
* In der main Methode wird das GUI erstellt und die start() Methode
* aufgerufen.
*
* @param args
* @throws InterruptedException
*/
public static void main(String[] args) throws InterruptedException {
t1 = new Client1();
EventQueue.invokeLater(new Runnable() {
@ -66,23 +67,16 @@ public class Client1 extends JFrame {
}
});
try {
start();
} catch (ClassNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
} catch (ClassNotFoundException | IOException e) {
e.printStackTrace();
}
}
/*
In der Methode Client1() wird das GUI
und die Befehle die durch einen Click des
Button's ausgelöst werden festgelegt
/**
* In der Methode Client1() wird das GUI und die Befehle die durch einen
* Click des Button's ausgelöst werden festgelegt (Konstruktur)
*/
public Client1() {
@ -105,17 +99,14 @@ public class Client1 extends JFrame {
contentPane.add(txtUsername);
txtUsername.setColumns(10);
/*
Der Button "Send" nimmt die aktuelle Nachricht,
welche im Textfeld "message" geschrieben wurde und
schreibt diese als ein Message-Objekt in den Output-Stream
an den Server, falls die Socket bereits verbunden ist.
Falls die Nachricht "exit" sein sollte, wird
die GUI beendet.
/**
* Der Button "Send" nimmt die aktuelle Nachricht, welche im Textfeld
* "message" geschrieben wurde und schreibt diese als ein Message-Objekt
* in den Output-Stream an den Server, falls die Socket bereits
* verbunden ist.
*
* Falls die Nachricht "exit" sein sollte, wird die GUI beendet.
*/
JButton btnSend = new JButton("Send");
btnSend.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent arg0) {
@ -133,13 +124,11 @@ public class Client1 extends JFrame {
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
try{
try {
oboust.writeObject(tosend);
oboust.flush();
} catch (IOException e) {
e.printStackTrace();
}
} catch (Exception k) {
print("KEINE VERBINDUNG");
}
@ -147,7 +136,6 @@ public class Client1 extends JFrame {
if (temp.getMessage().equals("exit")) {
System.exit(0);
}
txtMessage.setText("");
}
@ -158,10 +146,9 @@ public class Client1 extends JFrame {
btnSend.setBounds(264, 229, 79, 23);
contentPane.add(btnSend);
/*
Hier wird die textArea, auf welcher der Text ausgegeben wird
initialisiert
/**
* Hier wird die textArea, auf welcher der Text ausgegeben wird
* initialisiert
*/
textArea = new JTextArea(currentText);
textArea.setLineWrap(true);
@ -170,15 +157,12 @@ public class Client1 extends JFrame {
textArea.setBounds(20, 42, 323, 176);
contentPane.add(textArea);
/*
Der Start Button sorgt sorgt dafür, dass der Username
festgesetzt wird, wodurch er nicht veränderlich ist.
Außerdem wird die globale Variabel j von 0 auf 1 gestzt,
wodurch die start-Methode weiß, dass sie eine Verbindung
aufbauen soll.
/**
* Der Start Button sorgt sorgt dafür, dass der Username festgesetzt
* wird, wodurch er nicht veränderlich ist. Außerdem wird die globale
* Variabel j von 0 auf 1 gestzt, wodurch die start-Methode weiß, dass
* sie eine Verbindung aufbauen soll.
*/
JButton btnStart = new JButton("Start");
btnStart.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent arg0) {
@ -192,36 +176,35 @@ public class Client1 extends JFrame {
btnStart.setBounds(116, 10, 89, 23);
contentPane.add(btnStart);
}
/*
In der Print-Methode wird der neue Text (also eine neue Nachricht)
auf die textArea abgebildet.
/**
* In der Print-Methode wird der neue Text (also eine neue Nachricht) auf
* die textArea abgebildet.
*
* @param neuerText
*/
public static void print(String neuerText) {
currentText = neuerText + "\n" + currentText;
textArea.setText(currentText);
}
/*
Die start-Methode wartet, bis die Variable verbunden durch Klicken
des Start Buttons auf true gesetzt wird, erst dann beginnt die
eigentliche Methode.
Es wird dann eine Verbindung zum Socket über den Port
1236 aufgebaut. Sollte dies nicht Möglich sein, wird die
Fehlermeldung in der GUI ausgegeben, sodass der Nutzer weiß,
dass keine Vebrindung möglich ist.
Es wird im Sekundentakt nach einer neuen Verbindung gesucht.
/**
* Die start-Methode wartet, bis die Variable verbunden durch Klicken des
* Start Buttons auf true gesetzt wird, erst dann beginnt die eigentliche
* Methode.
*
* Es wird dann eine Verbindung zum Socket über den Port 1236 aufgebaut.
* Sollte dies nicht Möglich sein, wird die Fehlermeldung in der GUI
* ausgegeben, sodass der Nutzer weiß, dass keine Vebrindung möglich ist.
*
* Es wird im Sekundentakt nach einer neuen Verbindung gesucht.
*
* @throws IOException
* @throws ClassNotFoundException
* @throws InterruptedException
*/
public static void start() throws IOException, ClassNotFoundException, InterruptedException {
while (!verbunden) {
@ -238,12 +221,14 @@ public class Client1 extends JFrame {
print("VERBINDUNG HERGESTELLT");
} catch (Exception KeineSocket) {
print("SERVER ANTWORTET NICHT");
try {
Thread.sleep(5000);
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
anzahlRekursionen++;
if (anzahlRekursionen == 10) {
print("KEINE ANTWORT, CLIENT WIRD BEENDET");
@ -255,29 +240,24 @@ public class Client1 extends JFrame {
}
Object erhalten = null;
Message message = new Message("leer", "leer");
/*
Die While Schleife ist der Listener,
dieser wartet auf Nachrichten aus dem Server und
gibt diese dann aus.
Im Falle eines Verindungsabbruches versucht er
es 5 mal im Abstand von 2 Sekunden nochmal eine Nachricht
zu senden und ruft dann wieder die start() Methode auf.
wodurch die Verbindung nochmal neu hergestellt wird.
Die While-Schleife wird abgebrochen, sobald die Nachricht,
welche der Benutzer über das GUI sendet "exit" lautet.
/**
* Die While Schleife ist der Listener, dieser wartet auf Nachrichten
* aus dem Server und gibt diese dann aus.
*
* Im Falle eines Verindungsabbruches versucht er es 5 mal im Abstand
* von 2 Sekunden nochmal eine Nachricht zu senden und ruft dann wieder
* die start() Methode auf. wodurch die Verbindung nochmal neu
* hergestellt wird.
*
* Die While-Schleife wird abgebrochen, sobald die Nachricht, welche der
* Benutzer über das GUI sendet "exit" lautet.
*
*/
while (!temp.getMessage().equals("exit")) {
//System.out.println("WHILE");
try {
//System.out.println("hile4");
System.out.println("Nachricht erhalten");
@ -291,16 +271,13 @@ public class Client1 extends JFrame {
oboust.flush();
}
catch(SocketException h){
} catch (SocketException h) {
System.out.println(h);
print("VERBINDUNGSABBRUCH");
anzahlVersuche++;
Thread.sleep(2000);
if (anzahlVersuche == 5) {
anzahlVersuche = 0;
anzahlRekursionen++;
@ -312,32 +289,26 @@ public class Client1 extends JFrame {
}
start();
System.exit(0);
}
}
catch(Exception f){
} catch (Exception f) {
Thread.sleep(1000);
}
}
/*
Nach dem Abbruch der While Schleife, was nur bei der
Nachricht exit passiert, schließt der Client
den ObjectOutputstream, Objectinputstream und den Socket
und beendet dann das Programm
/**
* Nach dem Abbruch der While Schleife, was nur bei der Nachricht exit
* passiert, schließt der Client den ObjectOutputstream,
* Objectinputstream und den Socket und beendet dann das Programm
*/
oboust.close();
obinstr.close();
socket.close();
System.exit(0);
}
}