Kommentare in Client1

This commit is contained in:
BerdanInformatik123 2021-05-16 13:22:17 +02:00
parent 8c44d023d3
commit a1fc2b1fb6

View file

@ -3,13 +3,10 @@ package client;
import java.awt.BorderLayout; import java.awt.BorderLayout;
import java.awt.EventQueue; import java.awt.EventQueue;
import java.awt.TextArea; import java.awt.TextArea;
import javax.swing.JFrame; import javax.swing.JFrame;
import javax.swing.JPanel; import javax.swing.JPanel;
import javax.swing.border.EmptyBorder; import javax.swing.border.EmptyBorder;
import utils.Message; import utils.Message;
import javax.swing.JTextField; import javax.swing.JTextField;
import javax.swing.JButton; import javax.swing.JButton;
import javax.swing.JTextArea; import javax.swing.JTextArea;
@ -25,8 +22,20 @@ import java.util.Date;
import java.util.Scanner; import java.util.Scanner;
import java.awt.event.ActionEvent; import java.awt.event.ActionEvent;
/**
* Hauptklasse des Clients
* @version 0.1.3
* @author berdan
*/
public class Client1 extends JFrame { public class Client1 extends JFrame {
/*
Hier werden Objekte und Variablen deklariert, damit diese
in allen Methoden genutzt werden können.
*/
private static JPanel contentPane; private static JPanel contentPane;
JTextField txtMessage; JTextField txtMessage;
private static JTextField txtUsername; private static JTextField txtUsername;
@ -41,6 +50,11 @@ public class Client1 extends JFrame {
public static JTextArea textArea = new JTextArea(); public static JTextArea textArea = new JTextArea();
public static int k = 0; public static int k = 0;
/*
In der main Methode wird das GUI erstellt und die
start() Methode aufgerufen.
*/
public static void main(String[] args) { public static void main(String[] args) {
t1 = new Client1(); t1 = new Client1();
EventQueue.invokeLater(new Runnable() { EventQueue.invokeLater(new Runnable() {
@ -67,6 +81,12 @@ public class Client1 extends JFrame {
} }
/*
In der Methode Client1() wird das GUI
und die Befehle die durch einen Click des
Button's ausgelöst werden festgelegt
*/
public Client1() { public Client1() {
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setBounds(100, 100, 450, 300); setBounds(100, 100, 450, 300);
@ -87,6 +107,17 @@ public class Client1 extends JFrame {
contentPane.add(txtUsername); contentPane.add(txtUsername);
txtUsername.setColumns(10); 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"); JButton btnSend = new JButton("Send");
btnSend.addActionListener(new ActionListener() { btnSend.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent arg0) { public void actionPerformed(ActionEvent arg0) {
@ -129,7 +160,11 @@ public class Client1 extends JFrame {
btnSend.setBounds(264, 229, 79, 23); btnSend.setBounds(264, 229, 79, 23);
contentPane.add(btnSend); contentPane.add(btnSend);
// HIER PUBLIC GEMACHT /*
Hier wird die textArea, auf welcher der Text ausgegeben wird
initialisiert
*/
textArea = new JTextArea(currentText); textArea = new JTextArea(currentText);
textArea.setLineWrap(true); textArea.setLineWrap(true);
textArea.setForeground(Color.WHITE); textArea.setForeground(Color.WHITE);
@ -137,6 +172,15 @@ public class Client1 extends JFrame {
textArea.setBounds(20, 42, 323, 176); textArea.setBounds(20, 42, 323, 176);
contentPane.add(textArea); 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"); JButton btnStart = new JButton("Start");
btnStart.addActionListener(new ActionListener() { btnStart.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent arg0) { public void actionPerformed(ActionEvent arg0) {
@ -154,20 +198,37 @@ 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 neuerText){
public static void print(JTextArea textArea, String asd){ currentText = neuerText + "\n" + currentText;
currentText = asd + "\n" + currentText;
textArea.setText(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{ public static void start() throws IOException, ClassNotFoundException{
//JTextArea textArea = new JTextArea("BERDAN");
while(j==0){ while(j==0){
try { try {