diff --git a/src/client/Client1.java b/src/client/Client1.java index 70fbe0f..4a601db 100644 --- a/src/client/Client1.java +++ b/src/client/Client1.java @@ -3,13 +3,10 @@ package client; import java.awt.BorderLayout; import java.awt.EventQueue; import java.awt.TextArea; - import javax.swing.JFrame; import javax.swing.JPanel; import javax.swing.border.EmptyBorder; - import utils.Message; - import javax.swing.JTextField; import javax.swing.JButton; import javax.swing.JTextArea; @@ -25,8 +22,20 @@ import java.util.Date; import java.util.Scanner; 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. + */ private static JPanel contentPane; JTextField txtMessage; private static JTextField txtUsername; @@ -41,6 +50,11 @@ public class Client1 extends JFrame { public static JTextArea textArea = new JTextArea(); public static int k = 0; + /* + In der main Methode wird das GUI erstellt und die + start() Methode aufgerufen. + */ + public static void main(String[] args) { t1 = new Client1(); EventQueue.invokeLater(new Runnable() { @@ -65,7 +79,13 @@ public class Client1 extends JFrame { e.printStackTrace(); } } - + + + /* + In der Methode Client1() wird das GUI + und die Befehle die durch einen Click des + Button's ausgelöst werden festgelegt + */ public Client1() { setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); @@ -86,6 +106,17 @@ public class Client1 extends JFrame { txtUsername.setBounds(20, 11, 86, 20); 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. + */ JButton btnSend = new JButton("Send"); btnSend.addActionListener(new ActionListener() { @@ -129,13 +160,26 @@ public class Client1 extends JFrame { btnSend.setBounds(264, 229, 79, 23); contentPane.add(btnSend); - // HIER PUBLIC GEMACHT + /* + Hier wird die textArea, auf welcher der Text ausgegeben wird + initialisiert + + */ textArea = new JTextArea(currentText); textArea.setLineWrap(true); textArea.setForeground(Color.WHITE); textArea.setBackground(Color.LIGHT_GRAY); 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. + + */ JButton btnStart = new JButton("Start"); btnStart.addActionListener(new ActionListener() { @@ -154,21 +198,38 @@ public class Client1 extends JFrame { } + /* + In der Print-Methode wird der neue Text (also eine neue Nachricht) + auf die textArea abgebildet. + */ - - public static void print(JTextArea textArea, String asd){ - currentText = asd + "\n" + currentText; + public static void print(JTextArea textArea, String neuerText){ + currentText = neuerText + "\n" + currentText; textArea.setText(currentText); - //System.out.println("ES FUNKTIONIERT"); - } + /* + Die start-Methode wartet, bis die Variable j durch Klicken des Start + Buttons auf 1 gesetzt wird, erst dann beginnt die eigentliche + Methode. + Die textArea wird nochmal aufgebaut, da sie in dieser Methode + aktualisert werden muss. + + 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. + + */ + + public static void start() throws IOException, ClassNotFoundException{ - //JTextArea textArea = new JTextArea("BERDAN"); - + while(j==0){ try { Thread.sleep(10);