JApplet mit Chat

Status
Nicht offen für weitere Antworten.
G

Guest

Gast
Ich habe ein einfaches Chat Programm im Internet gefunden.

Ich möchte das Chatapplet aber in ein normales JFrame umwandeln.
Wie kann ich das bewerkstelligen.

Wenn ich einfach extends JFrame statt extends JApplet schreibe, funktionieren
die Methoden

Code:
			socket = new Socket(this.getCodeBase().getHost(), PORT);
			this.showStatus(e.toString());

nicht mehr. Gibt es da einen Ersatz.

Hier noch mal der komplette Code:

Code:
import java.net.*;
import java.io.*;
import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.Event;
import java.awt.Font;

import javax.swing.JApplet;
import javax.swing.JFrame;
import javax.swing.JTextArea;
import javax.swing.JTextField;

public class chatapplet extends JFrame implements Runnable
{
	private static final long serialVersionUID = 2588620415906363915L;
	
	public static final int PORT = 8768;
	Socket socket;
	DataInputStream in;
	PrintStream out;
	JTextField inputfield;
	JTextArea outputarea;
	Thread thread;

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

		this.setLayout(new BorderLayout());
		this.add( inputfield,BorderLayout.SOUTH);
		this.add( outputarea,BorderLayout.CENTER);
		this.setSize(300,200);
		
		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.interrupt();
			thread = null;
		}
	}


	public void run()
	{
		String line;

		try
		{
			while(true)
			{
				BufferedReader stdin =
					new BufferedReader ( new InputStreamReader( System.in ) );
				
				line = stdin.readLine();
				if(line!=null)
					outputarea.append(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.append("*** "+msg+" ***\n");
	}
}
 
G

Gast

Gast
Du brauchst auf jeden Fall eine Hauptklasse, die von JApplet erbt, und wenn sie nur dazu da ist, das JFrame zu öffnen.
 

Mirko07

Aktives Mitglied
Ohne JApplet geht das aber auch:


1.
Du brauchst für die Applikation sowie eine Methode
Code:
public static void main(String[] args)...
Wenn Du auf der Kommandozeile den Host übergibst (z.B. http/localhost/) - getCodeBase() geht hier nicht- kannst Du die Host-Adresse variabel halten.
z.B.
Code:
public class chatapplet extends JFrame implements Runnable 
{
    String hostAdresse;
    ...

    public static void main (String[] args)
    {
        chatapplet chat = new chatapplet(args[0]);
    }
    public chatapplet(String hostAdresse)
    {
        this.hostAdresse = hostAdresse;
        init();
        start();
        ...
    }
...
    public void start()
    {
        socket = new Socket(hostAdresse,PORT);
        ...
    }
}

Zur Sicherheit sollte in main getestet werden, ob ein Argument übergeben wurde.

2.
showStatus(...) wird auch nix.
Ich empfehle ein Info-Fenster mit
Code:
JOptionPane.showMessageDialog(..)
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
T JApplet in Browserfenster maximieren Tools - Maven, Gradle, Ant & mehr 10
A JApplet Form: JPanel dynamisch füllen Tools - Maven, Gradle, Ant & mehr 3
P JApplet mit Look&Feel? Tools - Maven, Gradle, Ant & mehr 8
S Probleme mit Kombination Java JApplet;MySQL;Webserver Tools - Maven, Gradle, Ant & mehr 3
M Probleme mit JApplet Tools - Maven, Gradle, Ant & mehr 20
C JApplet soll beim Aufruf nicht neustarten Tools - Maven, Gradle, Ant & mehr 3
H JApplet von laufendem JApplet starten Tools - Maven, Gradle, Ant & mehr 8
G JApplet parallel zu Java-Applikation entwickeln Tools - Maven, Gradle, Ant & mehr 11
H JApplet läuft zwar korrekt, bleibt aber unsichtbar Tools - Maven, Gradle, Ant & mehr 3
M JApplet funktioniert nicht Tools - Maven, Gradle, Ant & mehr 5
G Problem mit JApplet bzw Applet Tools - Maven, Gradle, Ant & mehr 5
S aus einem JApplet ein Image in separatem JFrame anzeigen Tools - Maven, Gradle, Ant & mehr 10
N Jars in JApplet Tools - Maven, Gradle, Ant & mehr 2
M Unterschiede-Vorteile Applet/JApplet Tools - Maven, Gradle, Ant & mehr 3
D Runnable JApplet mit Bild/Ovals "übermalt" Buttons Tools - Maven, Gradle, Ant & mehr 6
A Tastatureingaben und JApplet Tools - Maven, Gradle, Ant & mehr 2
M eine Frage über JApplet und JMenuBar Tools - Maven, Gradle, Ant & mehr 6
D JApplet & MouseListener Tools - Maven, Gradle, Ant & mehr 5
L Applet oder JApplet Tools - Maven, Gradle, Ant & mehr 10
M JApplet komplett neu zeichnen Tools - Maven, Gradle, Ant & mehr 3
M JApplet läuft in Eclipse, aber nicht in den Browsern Tools - Maven, Gradle, Ant & mehr 7
S JApplet- Komponentenanzeige Tools - Maven, Gradle, Ant & mehr 7
M ein aus einem JApplet gestartetes JFrame schliessen Tools - Maven, Gradle, Ant & mehr 6
A [GUI] [JApplet] [JDialog] Nochmal die Frage zur Modalität un Tools - Maven, Gradle, Ant & mehr 3
K Bild (jpg) in einem JApplet Tools - Maven, Gradle, Ant & mehr 2
D JApplet Tools - Maven, Gradle, Ant & mehr 11
M Chat-Applet über EJB Message Bean Tools - Maven, Gradle, Ant & mehr 3
M Brauche Unterstützung bei Chat Applikation Tools - Maven, Gradle, Ant & mehr 1
G p2p Chat Tools - Maven, Gradle, Ant & mehr 9
B chat telefonisch aktivieren Tools - Maven, Gradle, Ant & mehr 5
B fertigen client-server-chat online stellen Tools - Maven, Gradle, Ant & mehr 4
Z Ärger mit Java-Chat Tools - Maven, Gradle, Ant & mehr 2
T Frage wegen Chat-Applet signieren Tools - Maven, Gradle, Ant & mehr 11
H Ärger mit einem Chat Tools - Maven, Gradle, Ant & mehr 6
B Chat Server in Tomcat integrieren Tools - Maven, Gradle, Ant & mehr 2
G Chat ohne ständig laufenden Chatserver Tools - Maven, Gradle, Ant & mehr 5

Ähnliche Java Themen

Neue Themen


Oben