Chatfenster bleibt grau!

Hallo Welt! :D

Ich habe folgendes Problem:
Nachdem ich mich durch das Erstellen einer Java-Server- sowie Clientapplikation gekämpft habe, möchte er mir nicht mehr anzeigen als ein graues Fenster, ich weiß nicht mehr weiter...

So sieht das ganze aus:

attachment.php



Und das hier ist mein Quelltext:


chatserver.java

Java:
import java.net.*;
import java.io.*;
import java.util.*;

public class chatserver implements Runnable
{
	public static final int PORT = 8765;
	protected ServerSocket listen;
	protected Vector connections;
	Thread connect;

	public chatserver()
	{
		try
		{
			listen = new ServerSocket(PORT);
		} catch (IOException e)
		{
			System.err.println("Fehler beim Erzeugen der Sockets:"+e);
			System.exit(1);
		}

		connections = new Vector();

		connect = new Thread(this);
		connect.start();
	}

	public void run()
	{
		try
		{
			while(true)
			{
				Socket client=listen.accept();

				connection c = new connection(this, client);
				connections.addElement(c);
			}
		} catch (IOException e)
		{
			System.err.println("Fehler beim Warten auf Verbindungen:"+e);
			System.exit(1);
		}
	}

	public static void main(String[] args)
	{
		new chatserver();
	}

	public void broadcast(String msg)
	{
		int i;
		connection you;

		for (i=0; i<connections.size(); i++)
		{
			you = (connection) connections.elementAt(i);
			you.out.println(msg);
		}
	}
}


connection.java

Java:
import java.net.*;
import java.io.*;

class connection extends Thread
{
	protected Socket client;
	protected DataInputStream in;
	protected PrintStream out;
	protected chatserver server;

	public connection(chatserver server, Socket client)
	{
		this.server=server;
		this.client=client;

		try
		{
			in = new DataInputStream(client.getInputStream());
			out = new PrintStream(client.getOutputStream());
		} catch (IOException e)
		{
			try { client.close(); } catch (IOException e2) {} ;
			System.err.println("Fehler beim Erzeugen der Streams: " + e);
			return;
		}

		this.start();
	}


	public void run()
	{
		String line;

		try
		{
			while(true)
			{
				line=in.readLine();
				if(line!=null)
					server.broadcast(line);
			}
		} catch (IOException e)
		{
			System.out.println("Fehler:" + e);
		}
	}
}


chatapplet.java

Java:
import java.net.*;
import java.io.*;
import java.awt.*;
import java.applet.*;

public class chatapplet extends Applet implements Runnable
{
	public static final int PORT = 8765;
	Socket socket;
	DataInputStream in;
	PrintStream out;
	TextField inputfield;
	TextArea outputarea;
	Thread thread;

	public void init()
	{
		inputfield = new TextField();
		outputarea = new TextArea();
		outputarea.setFont( new Font("Dialog", Font.PLAIN, 12));
		outputarea.setEditable(false);

		this.setLayout(new BorderLayout());
		this.add("South", inputfield);
		this.add("Center", outputarea);

		this.setBackground(Color.black);
		this.setForeground(Color.black);
		inputfield.setBackground(Color.white);
		outputarea.setBackground(Color.white);
	}

	public void start()
	{
		try
		{
			socket = new Socket(this.getCodeBase().getHost(), PORT);
			in = new DataInputStream(socket.getInputStream());
			out = new PrintStream(socket.getOutputStream());
		} catch (IOException e)
		{
			this.showStatus(e.toString());
			say("Verbindung zum Server fehlgeschlagen!");
			System.exit(1);
		}

		say("Verbindung zum Server aufgenommen...");

		if (thread == null)
		{
			thread = new Thread(this);
			thread.setPriority(Thread.MIN_PRIORITY);
			thread.start();
		}
	}


	public void stop()
	{
		try
		{
			socket.close();
		} catch (IOException e)
		{
			this.showStatus(e.toString());
		}

		if ((thread !=null) && thread.isAlive())
		{
			thread.stop();
			thread = null;
		}
	}


	public void run()
	{
		String line;

		try
		{
			while(true)
			{
				line = in.readLine();
				if(line!=null)
					outputarea.appendText(line+'\n' );
			}
		} catch (IOException e) { say("Verbindung zum Server abgebrochen"); }
	}


	public boolean action(Event e, Object what)
	{
		if (e.target==inputfield)
		{
			String inp=(String) e.arg;

			out.println(inp);
			inputfield.setText("");
			return true;
		}

		return false;
	}


	public void say(String msg)
	{
		outputarea.appendText("*** "+msg+" ***\n");
	}
}


Das Ganze läuft auf meinem PC, also ist nicht online.
Verschiedene Browser habe ich auch schon ausprobiert.
Würde mich echt freuen, wenn mir hier jemand helfen könnte!
Danke schonmal! :D
 

Anhänge

  • grauesfensterzgak.png
    grauesfensterzgak.png
    77,6 KB · Aufrufe: 50
Zuletzt bearbeitet von einem Moderator:

Sunchezz

Bekanntes Mitglied
Wenn ich das jetzt richtig gesehen habe, hast du vergessen die beiden Componenten dem Applet hinzuzufügen.

Code:
public Chatfenster() {
  ...
  this.add(inputfield);
  this.add(outputfield);
  ...
}

im Übrigen, nur als Hinweis, Klassennamen werden generell groß geschrieben, genauso wie Konstruktoren ;)
 

L-ectron-X

Gesperrter Benutzer
Das ist glaube ich das Beispiel aus den FAQ. Da wurde das auch schon falsch gemacht, allerdings wurde glaube ich darauf hingewiesen, das Fehler in den Code eingebaut wurden.
 
Danke für die Antwort schon mal! :)

Ich habe die Add-Zeilen so geändert wie du es vorgeschlagen hast, aber das Fenster bleibt leider immer noch grau...

Und Klassennamen schreibe ich für gewöhnlich schon groß, aber in dem Tutorial, das ich für die Chat-Applikation benutzte waren die Namen auch klein, also habe ich das für Testzwecke sicherheitshalber erst einmal übernommen, damit ich nichts durcheinanderbringe ^^

edit: Richtig, ich habe das Tutorial von Kaffee & Kuchen benutzt! ^^
 

Michael...

Top Contributor
Die Komponenten wurden bereits hinzugefügt - Zeile 24 & 25 des ursprünglichen Codes.

Baue sowas Stück für Stück aus. Lass am Anfang den ganzen Socketumfang weg. Erst einmal nur GUI aufbauen und anzeigen lassen, wenn das funktioniert weiter zum nächsten Schritt.

Ansonsen ein System.exit() im Kontext eines Applets ist eigentlich nicht so schön.
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
B Text von Knuddels Chatfenster in mein Programm bringen? Java Basics - Anfänger-Themen 5
A Fenster bleibt weiß Java Basics - Anfänger-Themen 7
M JavaFX: Fenster bleibt weiß Java Basics - Anfänger-Themen 3
N Array, lineare Suche, binäre Suche, Programm bleibt unerwartet stehen... Java Basics - Anfänger-Themen 6
Z JPanel bleibt leer Java Basics - Anfänger-Themen 2
O While Schleife bleibt hängen Java Basics - Anfänger-Themen 7
C Problem bei BlueJ - Pfeil bleibt nicht in der Dartscheibe stecken Java Basics - Anfänger-Themen 4
J Ball->Wand Kollision - Ball bleibt an Decke und Boden hängen Java Basics - Anfänger-Themen 2
B getInputStream() - auslesen bleibt leer Java Basics - Anfänger-Themen 2
V Frame bleibt grau Java Basics - Anfänger-Themen 5
P While schleife: Konsole bleibt leer :D Java Basics - Anfänger-Themen 5
J Frame bleibt schwarz beim Laden Java Basics - Anfänger-Themen 11
P Gui bleibt hängen beim erzeugen von Objekten Java Basics - Anfänger-Themen 5
T Countdown, der in der selben Zeile bleibt Java Basics - Anfänger-Themen 6
M Programm bleibt beim Ausführen von Bash-Scripten hängen Java Basics - Anfänger-Themen 5
U Animation bleibt leer (weiß) Java Basics - Anfänger-Themen 5
G Table bleibt leer :( Java Basics - Anfänger-Themen 12
J Die Sprache der Informatiker sie bleibt mir ein Rätsel. Java Basics - Anfänger-Themen 8
L Beim ausführen bleibt der Button gedrückt . Java Basics - Anfänger-Themen 35
S Array bleibt leer, wo liegt mein Fehler? Verzeichnisinhalt s Java Basics - Anfänger-Themen 8
A Fenster bleibt leer und schließt sich nicht Java Basics - Anfänger-Themen 26
M JTable Focus bleibt auf Zelle Java Basics - Anfänger-Themen 4
G Mein Array bleibt immer leer????????? Java Basics - Anfänger-Themen 8
D Wie werden Felder grau? Java Basics - Anfänger-Themen 26

Ähnliche Java Themen

Neue Themen


Oben