!!!Help with Applets!!! PLEASE

Status
Nicht offen für weitere Antworten.

Developer_X

Top Contributor
Hi,
also ich habe drei klassen zum Chat geschrieben,
so nun
will ich das chatapplet aufrufen, und zwar von der Klasse "Chat"
aber wie kann ich das anstellen?
Ich weiß, um die klasse chatapplet aufzurufen, muss ich schon einmal
die Klasse chatserver starten, aber egal wie ich das anstelle, es klappt, nicht, kann mir einer helfen?
Code:
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);
		}
	}
}
Code:
import java.net.*;
import java.io.*;
import java.util.*;

public class chatserver implements Runnable
{
	public static final int PORT = 2;
	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);
		}
	}
}
Code:
import java.applet.Applet;
import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.Event;
import java.awt.Font;
import java.awt.TextArea;
import java.awt.TextField;
import java.io.DataInputStream;
import java.io.IOException;
import java.io.PrintStream;
import java.net.Socket;

public class chatapplet extends Applet implements Runnable
{
	public static final int PORT = 2;
	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.lightGray);
		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)"Imperator: "+ e.arg;

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

		return false;
	}


	public void say(String msg)
	{
		outputarea.appendText("*** "+msg+" ***\n");
	}
	public static void main()
	{
		new chatapplet();
	}
}
So, nun ich rufe die Klasse chatapplet mit den folgenden Zeilen in meiner Main auf:
Code:
public class Chat 
{
	public static void main(String[]args)
	{
		new chatserver(); 
		new chatapplet();
	}
}
es klappt aber nicht, es passiert nichts, das Applet erscheint nicht, wieso?
Um "chatapplet.java" starten zu können, muss man vorher schon einmal die klasse "chatserver.java" gestartet haben, was mache ich falsch?
 

Sempah

Bekanntes Mitglied
Nimm mal das
Code:
new chatserver();
aus "Chat.java" heraus, starte "chatserver.java" und danach deine "Chat.java".

Sieht alles aber sehr komisch aus. Und von Coding-Conventions hast du aber auch noch nicht gehört oder?
 

Developer_X

Top Contributor
Sempa, geht immer noch nicht:
Code:
public class Chat 
{
	public static void main(String[]args)
	{
		new chatserver(); 
		new chatapplet();
		new Chat();
	}
}
 

diggaa1984

Top Contributor
er meinte den obersten aufruf rausnehmen .... im sinne von:

- starte Server extra (hat ja auch ne main)
- starte dann clients die sich dann irgendwie auf diesem Server anmelden müssten

is ja ein gängiges prinzip
 

Sempah

Bekanntes Mitglied
er meinte den obersten aufruf rausnehmen .... im sinne von:

- starte Server extra (hat ja auch ne main)
- starte dann clients die sich dann irgendwie auf diesem Server anmelden müssten

is ja ein gängiges prinzip

Genau. Du hast in deiner chatserver.java schon eine main, mit der du deinen Server starten kannst.
Folglich solltest du aus Chat.java "new chatserver();" herausnehmen.

Es soll ja auch möglich sein mehrere Clients, welche sich zu einem Server verbinden zu starten.
 

Developer_X

Top Contributor
also nochmal, ich habe die klassen jetzt umgewandelt, schaut euch die mains, und die publics genau an!!!
wenn ihr das getan habt, schaut bitte mal ganz genau in die Main von "Chat.java"
ich glaube ich habe eure vorschläge jetzt alle eingebaut.

Außerdem hab ichs jetzt so umgewandelt, damit man das chataplet schon starten kann, ohne den chatserver zu starten, schauts euch mal an...
Code:
public class Chat 
{
	public Chat()
	{
		new chatapplet();
	}
	public static void main(String[]args)
	{
		new Chat();
    }
}
Code:
import java.applet.Applet;
import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.Event;
import java.awt.Font;
import java.awt.TextArea;
import java.awt.TextField;
import java.io.DataInputStream;
import java.io.IOException;
import java.io.PrintStream;
import java.net.Socket;

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

	public void init()
	{

		new chatserver();
		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.lightGray);
		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)"Imperator: "+ e.arg;

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

		return false;
	}


	public void say(String msg)
	{
		outputarea.appendText("*** "+msg+" ***\n");
	}
	public static void main()
	{
		new chatserver();
		new chatapplet();
	}
}
Code:
import java.net.*;
import java.io.*;
import java.util.*;

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

	public chatserver()
	{
		System.out.println("bis hier hin funzt es: 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);
		}
	}
}
 

Developer_X

Top Contributor
heye, ich hab was neues rausgekriegt, man muss ein Applet aufrufen, mit einem mainframe,
aber das ganze geht immer noch nicht wieso?
Code:
import java.io.FileNotFoundException;
import java.io.IOException;

import com.sun.j3d.utils.applet.MainFrame;

public class Chat 
{
	public Chat() throws FileNotFoundException, IOException
	{
		chatapplet s = new chatapplet();
		MainFrame  f = new MainFrame(s, 200, 200);f.setVisible(true);
	}
	public static void main(String[]args) 
	{
		
			try {
				new Chat();
			} catch (FileNotFoundException e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			} catch (IOException e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			}
    }
}
 

L-ectron-X

Gesperrter Benutzer
Die Klassen aus dem Paket com.sun sollten meines Wissens gar nicht benutzt werden.
 
Zuletzt bearbeitet:
S

Spacerat

Gast
Die Klassen aus dem Paket com.sun sollten meines Wissens gar nicht benutzt werden.
Genau das habe ich auch schon irgendwo gelesen (glaub' sogar in diesem Forum). Oder beschränkte sich das "sun.*"? Wenn allerdings "com.sun.*" auch davon betroffen ist, wie rechtfertigt SUN dan die ganzen Zugriffe darauf aus "javax.*"?
Und wenn da was Wahres dran ist, wer erklärt DX dann wie man AppletStub und AppletContext für eine einfache (normales (J)Applet in einem normalen (J)Frame) Anwendung bastelt? Weil ich kenn auch keinen anderen (einfachen) Weg als den über MainFrame (j3d) und AppletViewer.
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
G Help me in the Java Program Java Basics - Anfänger-Themen 2
L Erste Schritte Help with websocket protocol implementation Java Basics - Anfänger-Themen 5
K need help doing Eratosthenes siev Java Basics - Anfänger-Themen 3
F Need Help mit String :/ Java Basics - Anfänger-Themen 8
Z User/passwort eingabe...Help! Java Basics - Anfänger-Themen 4
1 Mein erstes Programm, HELP!! Java Basics - Anfänger-Themen 2
E string.match[regex] - Help ! Java Basics - Anfänger-Themen 2
A Frame schließen!? Help! Java Basics - Anfänger-Themen 5
Screen Ein logischer Fehler im Code, Help pls Java Basics - Anfänger-Themen 6
S Help Java Basics - Anfänger-Themen 5
M ArrayQueue need HELP! Java Basics - Anfänger-Themen 5
D ZweiWoerter.java HELP ! Java Basics - Anfänger-Themen 8
I Selection-Sort // Array *help* Java Basics - Anfänger-Themen 2
M Java Schleife Help plz! Java Basics - Anfänger-Themen 12
M Help! ActionEvent bei Button Klick Java Basics - Anfänger-Themen 9
R FileInputStream.read() != FileReader.read(). Pls Help Java Basics - Anfänger-Themen 5
D Wert muss sich pro sek ändern aber wie? HELP! Java Basics - Anfänger-Themen 9
T Help! Kann Bilder nach Packen in ein jar-File nimmer finden! Java Basics - Anfänger-Themen 17
N need help in panel Java Basics - Anfänger-Themen 8
N Finde Fehler nicht! Help plz! Java Basics - Anfänger-Themen 3
S call by reference vs. call by value - pls help Java Basics - Anfänger-Themen 7
P Java 8 & Eigene Applets Java Basics - Anfänger-Themen 3
Sogomn Einbinden eines Applets Java Basics - Anfänger-Themen 5
M Erste Schritte applets Java Basics - Anfänger-Themen 7
F Applets signieren. Java Basics - Anfänger-Themen 5
OnDemand Berechnung in die start und paint Methode eines Applets Java Basics - Anfänger-Themen 28
J Applets und getCodeBase() Java Basics - Anfänger-Themen 2
B lokales JRE bei Applets nutzen ? Java Basics - Anfänger-Themen 4
T Die Zukunft von Java Applets sicher? Java Basics - Anfänger-Themen 15
P Applets im Browser Java Basics - Anfänger-Themen 4
SheldoN Sound abspielen nach Buttonklick in Applets Java Basics - Anfänger-Themen 17
S JInternalFrame in Applets? Java Basics - Anfänger-Themen 9
K mehrer applets sollen sich gegenseitig verständigen können Java Basics - Anfänger-Themen 3
F Applets mit Appletloader in lauffähige Datei exportieren Java Basics - Anfänger-Themen 3
N Applets: unterschiedliche Java Versionen Java Basics - Anfänger-Themen 7
N Applets: Objekte vom Server laden Java Basics - Anfänger-Themen 4
L Probleme bei Offline-Nutzung von Java-Applets Java Basics - Anfänger-Themen 6
B Einfache Applets für Webseite Java Basics - Anfänger-Themen 10
M Frage zum Aufruf eines Applets aus einer HTML - Datei Java Basics - Anfänger-Themen 3
B Applets Java Basics - Anfänger-Themen 3
A java cache löschen/ausschalten bzw. Browser Applets entwickeln Java Basics - Anfänger-Themen 9
U Objekte und Applets Java Basics - Anfänger-Themen 9
Semox Fehler in Eclipse vor Start eines Applets anzeigen? Java Basics - Anfänger-Themen 2
S Wo speichere ich Bilder für Applets (Netbeans) Java Basics - Anfänger-Themen 5
A Ausdrucken eines Applets Java Basics - Anfänger-Themen 10
N Applets Java Basics - Anfänger-Themen 2
J java applets bilder? Java Basics - Anfänger-Themen 11
D Grenzen eines Applets Java Basics - Anfänger-Themen 9
Screen Eine Frage zu moueMove in applets und deren Vergleich Java Basics - Anfänger-Themen 11
F Unterschied im Einfügen von Bildern in Applets vs Applications Java Basics - Anfänger-Themen 6
S Java Applets Java Basics - Anfänger-Themen 2
0 Problem beim Starten des Applets Java Basics - Anfänger-Themen 2
M Anfängerfragen zu Java Applets Java Basics - Anfänger-Themen 4
G Speichern eines Applets (Speichern von Daten - Applikation) Java Basics - Anfänger-Themen 31
C Textausgabe auf Panelen innerhalb eines Applets Java Basics - Anfänger-Themen 6
G Weder IE noch Firefox zeigen mir Java Applets an Java Basics - Anfänger-Themen 5
Tapsi Wichtige Fragen zu Applets Java Basics - Anfänger-Themen 2
H Applets tuts nicht Java Basics - Anfänger-Themen 5
D Applets und jar Java Basics - Anfänger-Themen 6
7 Applets - einfachste Grundlagen Java Basics - Anfänger-Themen 24
M Umlaute in Java Applets? Java Basics - Anfänger-Themen 3
B Java Applets kommunizieren lassen? Java Basics - Anfänger-Themen 6
J 2 Applets zu 1 zusammenfassen? Java Basics - Anfänger-Themen 7
S applets im internet ablaufen lassen Java Basics - Anfänger-Themen 6
S MidiIN bei Applets Java Basics - Anfänger-Themen 3
B Unklarheit bei Applets und Runtime Java Basics - Anfänger-Themen 5
G Wie lass ich Applets anzeigen Java Basics - Anfänger-Themen 6
F Applets und die paint-Methode Java Basics - Anfänger-Themen 3
F Verwenden von Input innerhalb eines Applets Java Basics - Anfänger-Themen 3
M gehen applets auch in .jar dateien? Java Basics - Anfänger-Themen 3
S Verständnisfragen / Textausgabe (Java Applets) Java Basics - Anfänger-Themen 4
G Java Applets Java Basics - Anfänger-Themen 4
G Bilder in den Hintergrund eines Applets einfügen Java Basics - Anfänger-Themen 16
D *.mp3 in Applets nutzen Java Basics - Anfänger-Themen 23
N Thread, Applets & Co. Java Basics - Anfänger-Themen 3
A Problem beim Signieren eines Applets Java Basics - Anfänger-Themen 4
R Noch eine Frage: Breite des Applets im Browser ermitteln Java Basics - Anfänger-Themen 7
G Applets in Frames & Bilder Java Basics - Anfänger-Themen 10
MasterEvil Größe signierter Applets Java Basics - Anfänger-Themen 5
G Transparente Hintergrundfarbe eines Applets Java Basics - Anfänger-Themen 8
X Sind Traffic-Probleme durch Java Applets möglich? Java Basics - Anfänger-Themen 3
T Problem mit Objekten (bei Applets) Java Basics - Anfänger-Themen 6
D Netbeans IDE 5.0 und Applets Java Basics - Anfänger-Themen 4
J Grundsätzliche Fragen zur Anwendung von Applets Java Basics - Anfänger-Themen 12
T Fehler beim Laden eines Applets Java Basics - Anfänger-Themen 16
I Applets und Threads Java Basics - Anfänger-Themen 6
Chucky Rekursion grafisch darstellen anhand eines Applets Java Basics - Anfänger-Themen 14
J Java Applets schreiben welches JDK wählen? Java Basics - Anfänger-Themen 5
S Probleme bei Applets in HTML Java Basics - Anfänger-Themen 11
I Applets Java Basics - Anfänger-Themen 4
S Application starten / Applets + 3rd Person APIs Java Basics - Anfänger-Themen 10
F Wie kommen die Applets zum Client? Java Basics - Anfänger-Themen 7
P Lokale Dateien in Java-Applets einlesen Java Basics - Anfänger-Themen 2
P meine java applets laufen nicht bei meinen freunden Java Basics - Anfänger-Themen 5
M Java und Applets (Hilfe!!!) Java Basics - Anfänger-Themen 5
Arjunreddy Can someone please tell me how to use a debugger in BlueJ(a Java environment) Java Basics - Anfänger-Themen 1

Ähnliche Java Themen

Neue Themen


Oben