Kommentare in Client1
This commit is contained in:
parent
8c44d023d3
commit
a1fc2b1fb6
1 changed files with 73 additions and 12 deletions
|
@ -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() {
|
||||||
|
@ -65,7 +79,13 @@ public class Client1 extends JFrame {
|
||||||
e.printStackTrace();
|
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() {
|
public Client1() {
|
||||||
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
|
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
|
||||||
|
@ -86,6 +106,17 @@ public class Client1 extends JFrame {
|
||||||
txtUsername.setBounds(20, 11, 86, 20);
|
txtUsername.setBounds(20, 11, 86, 20);
|
||||||
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() {
|
||||||
|
@ -129,13 +160,26 @@ 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);
|
||||||
textArea.setBackground(Color.LIGHT_GRAY);
|
textArea.setBackground(Color.LIGHT_GRAY);
|
||||||
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() {
|
||||||
|
@ -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 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 {
|
||||||
Thread.sleep(10);
|
Thread.sleep(10);
|
||||||
|
|
Loading…
Reference in a new issue