From 09c4af5308a5d5422a0ade2144f1e9d7cd040236 Mon Sep 17 00:00:00 2001 From: BerdanInformatik123 Date: Tue, 18 May 2021 10:21:59 +0200 Subject: [PATCH] Userobjekt erstellt, kommentiert. UMLClient erstellt --- src/client/Client1.java | 60 +++++++++++++++++++++++++------------- src/client/User.java | 59 +++++++++++++++++++++++++++++++++++++ src/documetation/Bild.jpg | Bin 0 -> 20097 bytes 3 files changed, 99 insertions(+), 20 deletions(-) create mode 100644 src/client/User.java create mode 100644 src/documetation/Bild.jpg diff --git a/src/client/Client1.java b/src/client/Client1.java index 6a7ebc0..cd10b27 100644 --- a/src/client/Client1.java +++ b/src/client/Client1.java @@ -63,6 +63,7 @@ public class Client1 extends JFrame { private static int anzahlVersuche = 0; //Ist gleich die AN private static int anzahlRekursionen = 0; private static Message temp = new Message("leer", "leer"); + private static User user; /** * In der main Methode wird das GUI erstellt und die start() Methode @@ -115,6 +116,37 @@ public class Client1 extends JFrame { txtUsername.setBounds(20, 11, 86, 20); contentPane.add(txtUsername); txtUsername.setColumns(10); + + + /** + * 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) { + + /** + * Hier wird ein User-Objekt hergestellt + */ + + String name = txtUsername.getText(); + String nachricht = txtMessage.getText(); + + user = new User(name, nachricht); + + txtUsername.setEditable(false); + txtUsername.setEnabled(false); + verbunden = true; + + } + }); + btnStart.setBounds(116, 10, 89, 23); + contentPane.add(btnStart); + /** * Der Button "Send" nimmt die aktuelle Nachricht, welche im Textfeld @@ -131,12 +163,13 @@ public class Client1 extends JFrame { if (verbunden) { String themessage = txtMessage.getText(); - String theusername = txtUsername.getText(); + //String theusername = user.getUsername(); - tosend = new Message(theusername, themessage); + tosend = new Message(user.getUsername(), themessage); i = 1; - temp = new Message(theusername, themessage); + temp = new Message(user.getUsername(), themessage); + System.out.println("Button pressed"); setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); @@ -149,12 +182,16 @@ public class Client1 extends JFrame { } catch (Exception k) { print("KEINE VERBINDUNG"); } + + user.setMessage(themessage); if (temp.getMessage().equals("exit")) { System.exit(0); } txtMessage.setText(""); + + } } @@ -174,24 +211,7 @@ 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. - */ - JButton btnStart = new JButton("Start"); - btnStart.addActionListener(new ActionListener() { - public void actionPerformed(ActionEvent arg0) { - txtUsername.setEditable(false); - txtUsername.setEnabled(false); - verbunden = true; - - } - }); - btnStart.setBounds(116, 10, 89, 23); - contentPane.add(btnStart); } diff --git a/src/client/User.java b/src/client/User.java new file mode 100644 index 0000000..e0d116c --- /dev/null +++ b/src/client/User.java @@ -0,0 +1,59 @@ +/* + * Copyright (C) 2021 berdan + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ +package client; + +/** + * @version 0.0.1 + * @author berdan + */ + + +public class User { + + private String username; + private String currentmessage; + + /** + * Der Konstrukter des User-Objektes + * @param username1 Der Nutzername + * @param message1 Die Nachricht + */ + public User(String username1, String message1){ + this.username = username1; + this.currentmessage = message1; + } + + /** + * + * @param newMessage Die neue Nachricht + */ + public void setMessage(String newMessage){ + this.currentmessage = newMessage; + } + + /** + * Die get-Methode für den Username + * @return Der Nutzernamen + */ + + public String getUsername(){ + return this.username; + } + + + +} diff --git a/src/documetation/Bild.jpg b/src/documetation/Bild.jpg new file mode 100644 index 0000000000000000000000000000000000000000..7f6fa02dd27f56ee65169a9b8d5d2fac7b9aad8d GIT binary patch literal 20097 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 literal 0 HcmV?d00001