JavaChat

Status
Nicht offen für weitere Antworten.
A

Agent159

Gast
Hi, ich habe mir mal den Quelltext von dem Beispielchat von java.seite.net ausprobiert.
Diesen wollte ich jedoch in einem eigenem Frame haben.
Das habe ich auch noch schnell hinbekommen, doch leider versendet er nun keine Texte mehr, d.h. er reagiert nicht mehr auf die Enter-Taste...

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

public class chatapplet extends Applet implements Runnable
{
	public Frame f;
	public static final int PORT = 2710;
	Socket socket;
	DataInputStream in;
	PrintStream out;
	TextField inputfield;
	TextArea outputarea;
	Choice choiceChannel;
        List users;
	Thread thread;

	public void init()
	{
f = new Frame("Agent159's knuddeliger Chat");
f.addWindowListener(new java.awt.event.WindowAdapter() {
	public void windowClosing(java.awt.event.WindowEvent e) {
		f.dispose();
							}	});

		inputfield = new TextField();
		outputarea = new TextArea();
                users = new List();
		outputarea.setFont( new Font("Dialog", Font.PLAIN, 12));
		outputarea.setEditable(false);
f.add(inputfield);
f.add(outputarea);
f.add(users);
		f.setLayout(new BorderLayout());
		f.add("South", inputfield);
		f.add("Center", outputarea);
                f.add("East", users);
		f.setBackground(Color.lightGray);
		f.setForeground(Color.white);
		inputfield.setBackground(Color.darkGray);
		outputarea.setBackground(Color.darkGray);
		users.setBackground(Color.darkGray);
f.pack();
f.setSize(800,600);
f.show();
}
	public void start()
	{
		try
		{
			socket = new Socket(this.getCodeBase().getHost(), PORT);
			in = new DataInputStream(socket.getInputStream());
			out = new PrintStream(socket.getOutputStream());
			say("Verbindung zum Server aufgenommen...");
		} catch (IOException e)
		{
			this.showStatus(e.toString());
			say("Verbindung zum Server fehlgeschlagen!");
			//System.exit(1);
		}

		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");
	}
}

Wäre echt nett, wenn mir einer helfen könnte.

PS:Bin JavaAnfänger xD (beachte nur des java)
 

The_S

Top Contributor
1. Sehe ich keine implementierung eines KeyListeners bzw. ActionListeners welche von nöten ist um auf ein Enter zu reagieren.
2. Warum erbst du von JApplet wenn du sowieso ein JFrame möchtest?
3. Bevor du an einem vorgefertigtem Code rumbastelst, programmier dir sowas lieber von Anfang an selbst. Gibt ein gutes Tutorial in der Java-Insel ;)
 
A

Agent159

Gast
Wo gibt es denn solch ein Tutorial?

Ich hab auch ma in versch. Büchern in der Bibliothek geguckt, war aber auch nichts drin...
 
A

Agent159

Gast
Danke ^^

kannst du mir trotzdem noch sagen, wie das mit dem Event dann richtig funktioniert?
 

L-ectron-X

Gesperrter Benutzer
Hänge an dein TextField einen ActionListener.
Code:
inputfield.addActionListener(new ActionListener() {
   public void actionPerformed(ActionEvent e) {
      //Code hier hinein schreiben, der beim Drücken der Enter-Taste ausgeführt werden soll
   }
});
 
A

Agent159

Gast
Hey Dankeeeeee
funktioniert super xD

dankeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee
 
Status
Nicht offen für weitere Antworten.

Neue Themen


Oben