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
nicht mehr. Gibt es da einen Ersatz.
Hier noch mal der komplette Code:
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");
}
}