ChatGUI: Scrollbar und Funktionen

Status
Nicht offen für weitere Antworten.

Aurora

Mitglied
Hallo erstmal an alle!

Zusammen in einer Gruppe soll ich die GUI für ein Chat-Programm erstellen, welches als Applikation realisiert werden soll.

Leider kommen wir mit unserem Anfängerwissen langsam nicht mehr weiter.
Bisher haben wir das folgende "fabriziert":

Code:
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;

class chat {
  static JFrame hauptrahmen;
  static JTextField name;
  static JTextArea nachricht;
  static JTextField text;
  static JScrollPane scrollen;
  
    public static void main(String[] args) {

            hauptrahmen = new JFrame("U N I - C H A T");
            hauptrahmen.setSize(700, 500);

            JPanel box = new JPanel(new GridBagLayout());
            GridBagConstraints c = new GridBagConstraints();

			name = new JTextField ("Name, Vorname", 20);			
			JTextField nickName = new JTextField ("Nickname",10);
			JButton login = new JButton ("LOGIN");
	
            nachricht = new JTextArea("UNI CHAT \r\n",10, 20);
 	   		nachricht.setEditable(false);
            

	   		text = new JTextField("Hier Text eingeben", 20);
            JButton senden = new JButton("Senden");
			senden.addActionListener(new ActionListener() {
      		public void actionPerformed(ActionEvent e1) {
        		nachricht.append(text.getText());
        		nachricht.append("\r\n");
      		}
    	});


	    c.gridx = 0;
            c.gridy = 0;
            c.insets = new Insets(0,10,10,0);
            box.add(name,c);

			c.gridx = 1;
            c.gridy = 0;
            c.insets = new Insets(0,10,10,0);
            box.add(nickName,c);
            
            c.gridx = 2;
            c.gridy = 0;
            c.insets = new Insets(0,10,10,0);
            box.add(login,c);

            c.gridx = 0;
            c.gridy = 1;
            c.insets = new Insets(10,10,10,10);
            box.add(nachricht,c);

            c.gridx = 0;
            c.gridy = 2;
            box.add(text,c);

            c.gridx = 1;
            c.gridy = 2;
            box.add(senden,c);
            
/*          scrollen = new JScrollPane();
       	 scrollen.setHorizontalScrollBarPolicy(JScrollPane.HORIZONTAL_SCROLLBAR_NEVER);
             scrollen.setVerticalScrollBarPolicy(JScrollPane.VERTICAL_SCROLLBAR_ALWAYS);
             scrollen.getViewport().setBackground(SystemColor.control);
             scrollen.setBounds(0, 0, 300, 200);
        	
	    nachricht.add(scrollen);
*/
            hauptrahmen.getContentPane().add(box);
            hauptrahmen.setVisible(true);
  }
}


Das sieht dann folgendermaßen aus:



Neue_Version0.jpg




Unsere Probleme sind zum einen:

wie bekomme ich in die Buttons, die Funktionen, so dass sie auch irgendwie an unseren Server übermittelt werden, also, dass ich nicht mit mir selbst "chatte"?
und auch, wie wir es schaffen, dass erkannt wird wie die Person da heißt, die was einträgt und diese dann "einloggt" wenn auf den einloggen Button gedrückt wurde?

auf der anderen Seite haben wir es noch nicht geschafft, die (noch) Pseudo-Eingaben so darzustellen, dass sie einem Scrollbalken angezeigt werden.

Außerdem wär es schön, wenn man es irgendwie schaffen könnte, dass der Text in den Standard-Feldern verschwindet wenn man hineinklickt, also zum Beispiel "Nickname" und soweiter... Geht das?

Wir sind für jeden Tipp oder jede Erklärung dankbar, denn das Prinzip ist uns noch nicht wirklich klar geworden :cry:

Gruß Aurora


(den Chat auf der Kaffee und Kuchen Seite haben wir gesehen, aber da bekommen wir immer seltsame Fehler bei der Compillierung, die bekommen wir nicht weg... )
 
G

Gast

Gast
Für die Kommunikation im Chat, solltet ihr euch mal RMI anschauen.

Ihr braucht einen Chatserver, an dem sich alle Chatter (Clients) anmelden können. Dieser Server merkt sich dann alle angemeldeten Clients und informiert diese sobald sich wer, an oder abgemeldet, bzw. was geschrieben hat.

Generell solltet ihr den kommunikationskram ersteinmal unabhängig von der GUI realisieren und ersteinmal mit System.out arbeiten. Wenn das steht ist es schnell in eine GUI integriert.
 

Aurora

Mitglied
Ist das mit dem RMI so ähnlich wie das IRC?

Den Server haben wir, aber das Problem ist, dass wir nicht wissen, wie wir den dann "ansprechen" sollen, also wie wir mit ihm "kommunizieren"

Leider fragen die anderen Gruppen uns nach der Lösung für diese Übertragungs-Fragen, daher müssten wir erstmal verstehen, wie das von statten geht - kann da jemand anhand des Codes weiterhelfen?

Wir versuchen außerdem schon die ganze Zeit einen Scrollbalken einzubinden, es will aber einfach nicht klappen - das ist das zwischen den Kommentar-Zeichen - wenn ihr da eine Helfende Hand anbieten könnt?

Ich würde mich sehr freuen, wenn sich jemand unseren Problemen annehmen könnte.
 
G

Gelöschtes Mitglied 5909

Gast
bisher habt ihr nur GUI elemente "realisiert"
kümmert euch doch erst mal um die logik und strukturiert des ganze ein wenig und klatscht net alles in die main methode, des hat mit objektoriertierter programmierung nimmer viel zu tun.

wollt ihr ein eigenes mini "Chatprotokoll" entwickeln oder ein vorhandenes nehmen? Irgendwie muss der Server ja wissen was er mit der nachricht die er bekommen hat anfangen soll...

Bevor ihr euch da net im klaren seid würd ich noch überhaupt nix programmieren weils nicht wirklich sinn macht

wenn ihr zu nem irc server connecten wollt könnt ihr schon vorhandene librarys nehmen wie z.b. http://martyr.sourceforge.net/

p.s.: RM = Remote Method Invocation
 

Aurora

Mitglied
Leider ist es für uns noch nicht wirklich logisch, denn wir wissen nicht, wie die Übertragung funktioniert, auch haben wir keine Ahnung wie das mit dem Chatprotokoll ist - ist das dieses IRC?

Eine Gruppe ist für das "Hauptprogramm" zuständig, die dann die main methode erstellt und wir kommen ja dann da mit hinein, wenn alles zusammengefügt wird, oder etwa nicht?

Mir ist nicht so ganz klar, wie du das meinst mit nicht alles in die main reinklatschen...
Wie sollten wir das besser machen? ich meine sollten die Elemente, die wir darstellen in eine methode eingefügt werden? Aber wie bekommen wir dann das alles wieder in ein Layout? Kannst du da bitte etwas genauer erläutern?

Wir haben eine Gruppe die für den Filter vom Server zuständig ist und eine die für den Filter zum Server zuständig ist, dann eben das Hauptprogramm und eine die die Serveranbindung herstellen soll. Der Server soll der Uni-Server sein.
Also ich weiß einfach nicht, was uns dieses IRC überhaupt bringen soll, also was wir damit tun müssen und ob wir das überhaupt in irgend einer Weise brauchen wenn wir einen Server haben.
Jeder backt seinen Kuchen und wir sollen eben die GUI erstellen. Doch uns fehlt das Verständnis, wie wir es schaffen, dass eine Nachricht überhaupt "auf die Reise geschickt" wird.
 

Mirko07

Aktives Mitglied
Ich empfehle auch RMI.

Für die Übertragung benötigt Ihr einen Socket.

Code:
Socket sock;

sock = new Socket("127.0.0.1", 5000);
myReader = new ObjectInputStream(sock.getInputStream());
writer = new ObjectOutputStream(sock.getOutputStream());

Den Writer könnt Ihr zum Senden der Nachrichten nutzen:

Code:
writer.writeObject(NACHRICHT);

Die NACHRICHT kann ein String sein. Ich empfehle aber ein eigene Objekt (das wäre dann das oben beschriebene eigene Protokoll), weil mehr Informationen rein passen in der Art:
Code:
public class ChatMessage{
    absender : String;    // Absender - macht Sinn mit einem Login
    msgTyp   : Char;     // Art der Nachricht, z.B. CMD_LOGIN, CMD_ANALLE, CMD_PM ...
    msg        : String;    // Die eigentliche Information
}

Diese Klasse ChatMessage muß noch mit einem passenden Konstruktor in der Art
Code:
public ChatMessage(String absender,Char msgTyp,String msg)
{...}
und den Getter- und Setter-Methoden z.B.
Code:
public void setAbsender(String absender){...}
public String getAbsender(){...}
bestückt werden und ist damit geeignet, die Informationen zu transportieren und auch noch zuordnen zu können.

Das Lesen eingehender Nachrichten sollte in einem eigenen Thread erfolgen, damit sie sich nicht behindern...
Aus diesem können die GUI-Felder angesprochen werden, um die Nachrichten darzustellen.

Is ein Haufen Zeug... :lol:
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
T ScrollBar TableView Java Basics - Anfänger-Themen 6
Franzi1001 ScrollBar lässt sich nicht bewegen Java Basics - Anfänger-Themen 4
B Wie kann man an ein JPanel eine Scrollbar anheften? Java Basics - Anfänger-Themen 8
DaCrazyJavaExpert JScollPane scrollbar unsichtbar machen Java Basics - Anfänger-Themen 2
M TextArea scrollbar bei editable false Java Basics - Anfänger-Themen 5
G Darstellungsproblem beim Betätigen der Scrollbar in JTabe Java Basics - Anfänger-Themen 2
T JScrollPane nicht scrollbar (mit KSKB!) Java Basics - Anfänger-Themen 4
A TextArea und ScrollBar Java Basics - Anfänger-Themen 17
J Methoden Knopffarbe einer Scrollbar Java Basics - Anfänger-Themen 5
M Scrollbar zu Textarea Java Basics - Anfänger-Themen 5
B JList mit Scrollbar? Java Basics - Anfänger-Themen 7
W Scrollbar HORIZONTAL Java Basics - Anfänger-Themen 2
C Scrollbar !? Java Basics - Anfänger-Themen 3
K Scrollbar - Bild - paint-Methode - zoom Java Basics - Anfänger-Themen 10
H JTable in JScrollPane: Scrollbar wird nicht angezeigt. Java Basics - Anfänger-Themen 2
H >>ScrollBar<< Java Basics - Anfänger-Themen 2
H ScrollBar inaktiv / Rekursive Methode Java Basics - Anfänger-Themen 4
A Scrollbar und Änderung Java Basics - Anfänger-Themen 3
L scrollbar auf double? Java Basics - Anfänger-Themen 6
Horst79 Scrollbar in einem jEditorPane Java Basics - Anfänger-Themen 2
A jtable scrollbar Java Basics - Anfänger-Themen 8
G horizontale scrollbar Java Basics - Anfänger-Themen 14
K J_table scrollbar Java Basics - Anfänger-Themen 13
O Scrollbar in GUI einfügen Java Basics - Anfänger-Themen 4
E ScrollBar automatisch scrollen Java Basics - Anfänger-Themen 8
N Scrollbar addAdjustmentListener Java Basics - Anfänger-Themen 3
P In JTextArea soll automisch an einen bestimmte Scrollbar pos Java Basics - Anfänger-Themen 14
E Scrollbar mit NULL- Layout? Java Basics - Anfänger-Themen 4
H Anfänger verzweifelt: Buttons und Scrollbar in einem Applet Java Basics - Anfänger-Themen 5
H JScrollPane -> Problem bei ScrollBar Java Basics - Anfänger-Themen 3
C ein Canvas ist zu groß. mit Scrollbar ? Java Basics - Anfänger-Themen 8
E Scrollbar- Farben Java Basics - Anfänger-Themen 5
G Scrollbar einer Itemlist hinzufügen Java Basics - Anfänger-Themen 3
G scrollbar, brauche hilfe wird nicht dargestellt Java Basics - Anfänger-Themen 2
B Erste Schritte Bisektion mit zwei Funktionen? Java Basics - Anfänger-Themen 1
J Verständnisfrage zu throws neben Funktionen Java Basics - Anfänger-Themen 2
A Variablen Definitionen zu Codes und Funktionen. Java Basics - Anfänger-Themen 3
Z If Funktionen, GUI, Fachklasse Java Basics - Anfänger-Themen 25
H Frage zu Methoden/Funktionen Java Basics - Anfänger-Themen 3
M Vererbung Funktionen in Basisklasse deklarieren Java Basics - Anfänger-Themen 4
J Funktionen auf der Rückgabe eines Stacks (pop) Java Basics - Anfänger-Themen 6
J Funktionen Java Basics - Anfänger-Themen 9
S Klassen Class mit Funktionen importieren Java Basics - Anfänger-Themen 1
B Funktionen von außen aufrufen Java Basics - Anfänger-Themen 1
M Klassen Funktionen aus anderen Klassen benutzen Java Basics - Anfänger-Themen 3
G funktionen der super-klasse von der super-klasse Java Basics - Anfänger-Themen 6
R Funktionen Synchron laufen lassen Java Basics - Anfänger-Themen 10
K Ungenauigkeit beim Zeichnen von Funktionen Java Basics - Anfänger-Themen 6
S Welche Datenstruktur ist die optimalste um Funktionen fuer bestimmte Wertebereiche abzurufen..? Java Basics - Anfänger-Themen 5
A ganzrationale funktionen auswerten. Java Basics - Anfänger-Themen 1
S Funktionen/Atrribute nur innerhalb einer package Zugänglich machen Java Basics - Anfänger-Themen 8
Z Differenz zwischen 2 Daten berechnen, ohne importiere Funktionen! Java Basics - Anfänger-Themen 10
S Funktionen zeichnen Java Basics - Anfänger-Themen 2
K Methoden Funktionen und Prozeduren Java Basics - Anfänger-Themen 11
R Rekursionen und Funktionen ... Java Basics - Anfänger-Themen 8
J Funktionen automatisiert aufrufen Java Basics - Anfänger-Themen 5
B Funktionen programmieren, die im Hintergrund aktiv sind Java Basics - Anfänger-Themen 2
O Funktionen dateiübergreifend mit Packages Java Basics - Anfänger-Themen 6
S Parameterübergabe - identische Funktionen, aber falsche Funktion Java Basics - Anfänger-Themen 5
M Methoden Funktionen Java Basics - Anfänger-Themen 6
M Erste Schritte Fenster Und VB Funktionen Java Basics - Anfänger-Themen 8
G Aufruf externer Funktionen Java Basics - Anfänger-Themen 7
J Aufruf von Funktionen in *.jar mittels Eclipse Java Basics - Anfänger-Themen 4
0 Reguläre Ausdrücke und Funktionen Java Basics - Anfänger-Themen 2
D Abstrakte Klassen und Interfaces als Paramter in Funktionen Java Basics - Anfänger-Themen 3
B Ausgabe problem in Funktionen Java Basics - Anfänger-Themen 6
L Hat java keine virtuellen funktionen?? Java Basics - Anfänger-Themen 6
A Funktionen und Arrays Java Basics - Anfänger-Themen 2
C funktionen nur static? Java Basics - Anfänger-Themen 6
M MouseAdapter - auf Funktionen zugreifen Java Basics - Anfänger-Themen 13
L Funktionen addRow und deleteRow Java Basics - Anfänger-Themen 6
D Mathematische Funktionen Zeichnen Java Basics - Anfänger-Themen 2
D Variableninhalt über mehrere Funktionen ? Java Basics - Anfänger-Themen 3
Out.println Funktionen Java Basics - Anfänger-Themen 7
D Verständnisfrage zu Funktionen Java Basics - Anfänger-Themen 6
B Mathematische Funktionen Java Basics - Anfänger-Themen 3
D Warum sollte ich bestehende Funktionen "extend"en? Java Basics - Anfänger-Themen 32
M Statische und nicht-statische Funktionen: Desktop.browse(uri); Java Basics - Anfänger-Themen 4
N Funktionen berechnen in Java Java Basics - Anfänger-Themen 18
Kasoki Eigene Funktionen / Commands Java Basics - Anfänger-Themen 14
Q Nach Stringvorgabe bestimmte funktionen ausführen Java Basics - Anfänger-Themen 3
K zwei Funktionen, ein BufferedReader? Java Basics - Anfänger-Themen 8
A Static in Funktionen bringen Java Basics - Anfänger-Themen 7
J Funktionen in Java? Java Basics - Anfänger-Themen 3
A frage zur integration von funktionen anderer klassen Java Basics - Anfänger-Themen 2
T Funktionen Plotter - Klassen/Methoden/Funktionen Java Basics - Anfänger-Themen 13
S wann static Funktionen wann nicht Java Basics - Anfänger-Themen 6
W Funktionen mit Default werten Java Basics - Anfänger-Themen 10
G Müssen globale Funktionen immer "static" sein? Java Basics - Anfänger-Themen 13
S Überladen von Funktionen vermeiden Java Basics - Anfänger-Themen 5
B Funktionen ausführen vorm Beenden des Programmes Java Basics - Anfänger-Themen 13
M Mathematische Funktionen zeichnen. Java Basics - Anfänger-Themen 2
A mathematische Funktionen grafisch darstellen Java Basics - Anfänger-Themen 8
G Funktionen? Java Basics - Anfänger-Themen 7
S 2 regex-Funktionen benötigt Java Basics - Anfänger-Themen 4
S anzahl von funktionen Java Basics - Anfänger-Themen 9
B in der .Jar funktionieren nicht alle Funktionen Java Basics - Anfänger-Themen 18
X Threads+Funktionen Java Basics - Anfänger-Themen 6
S Explorer funktionen nachprogrammieren Java Basics - Anfänger-Themen 2
P Rexex - stringtokenizer - String funktionen allgemein Java Basics - Anfänger-Themen 3

Ähnliche Java Themen

Neue Themen


Oben