# Schriftfarbe im Chat ändern



## TheDestroyer (19. Jan 2007)

Hallo, habe mich nun entschlossen satt den Server der Uni zu nehmen, meinen lokalen Server anzuwählen, da ich in mein Chatprogramm eine Userliste mit einbauen, will, welche der UNI-Server aber nicht hat und dies dazu führt das der Chat sich zwar verbindet, aber keine Nachrichten verschickt werden können. Will das jetzt also auf meinem lokalen Server machen.

Hab jetzt allerdings noch ein Problem. Und zwar sollen wir die Schriftfarbe, -art, größe und Hintergrundfarbe ändern. Von diesen Texteigentschaften soll ich mir 2 aussuchen. Tendiere zu Schriftfarbe(2) und -art(3).  Diese Eigentchaften haben Werte welche beim Verbindungsaufbau mit übergeben werden müssen. Ich muss also das Produkt aus meinen Eigentschaften senden, damit der Server weiss was ich den sende.

Wie mache ich das? habe mir das so vorgestellt, dass ich diese Eigentschften immer vor dem eigentlichen Texten senden muss, weiss jetzt aber nicht wirklich wie. Muss sicherlich mit MyColor arbeiten. Und was ich mir nicht vorstellen kann wie ich denn diesen Init Wert übergebe.

Wäre super wenn sich jemand melden und mir helfen könnte!!!!!!


----------



## EOB (19. Jan 2007)

von welchem chat redest du da eigentlich? ???:L


----------



## TheDestroyer (20. Jan 2007)

na ich hab hier im forum schonmal nen chat gepostet, ist jetzt auch nur als bsp. bezeichnet. auf jedenfall soll ich die schriftfarbe, usw. mitsenden. poste hier mal die klasse in welche das eingestzt werden muss.


```
package lokalChat;

import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.Dimension;
import java.awt.Label;
import java.awt.List;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

import javax.swing.JButton;
import javax.swing.JEditorPane;
import javax.swing.JFrame;
import javax.swing.JList;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.JTextField;
import javax.swing.border.EtchedBorder;

public class Chatclient extends JFrame {
	
	public static Chat_Thread chat_thread 			= new Chat_Thread();
	public static Userlist_Thread userlist_thread 	= new Userlist_Thread();

	// GUI
	
	static JFrame nameWindow 		= new JFrame("Bitte Namen eingeben");
	static JButton sendName			= new JButton("weiter");
	
	static JTextField nameField		= new JTextField();
	
	static JFrame mainFrame 		= new JFrame("Chat");
	

	static JEditorPane output		= new JEditorPane();


	static JTextField input 		= new JTextField();
	static JList userList			= new JList();
	static JButton senden			= new JButton("senden");
	
	
	static JPanel mainPanel 		= new JPanel(new BorderLayout());
	static JPanel inputPanel 		= new JPanel(new BorderLayout());
	static JScrollPane outputPanel	= new JScrollPane(output);
	
	static List list				= new List();
	
	static String temp_name 		= "";
	
	final static protected String[] explode(String seperator, String string) {
	       
	       int sep_length = seperator.length();
	       int count = 0;
	       // Wieviel Seperatoren?
	       for(int index = 0; index < string.length() &&  index > -1; index = string.indexOf(seperator, index + sep_length ))
	       count++;
	       
	       // Feld anlegen
	       String[] array = new String[count ];
	       
	       if(count > 0)
	       {
	         // Teilstrings ins Feld schreiben...
	         int i = 0;
	         string = seperator + string;
	         for(int index = 0; index < string.length() && index > -1; index = string.indexOf(seperator, index + sep_length ))
	         {
	           if(string.indexOf(seperator , index + sep_length ) > 0 ) 
	           {
	             array[i] = string.substring(index + sep_length, string.indexOf( seperator, index + sep_length));
	             i++;
	           } 
	           else 
	           {
	             array[i] = string.substring( index + sep_length );
	             i++;
	           }
	         }
	       }
	       // Und Feld zurück geben...
	       return array;
	    }
	
	private static void initGUI() {

		// Komponenten konfigurieren
		
		mainFrame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		mainFrame.setSize(new Dimension(400,200));
		
		input.setBorder(new EtchedBorder());
		
		output.setEditable(false);
        list.setBackground(Color.gray);
		
		// Listener
		
		input.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent evt)
			{
				chat_thread.action(evt);
			}
		});
		
		// Komponenten hinzufügen
		
		inputPanel.add("Center", input);
		inputPanel.add("East", senden);
		
		mainPanel.add("Center", outputPanel);
		mainPanel.add("East", list);
		mainPanel.add("South", 	inputPanel);
		
		mainFrame.add(mainPanel);
		
		if(temp_name == "") {
			
			JPanel namePanel 		= new JPanel(new BorderLayout());
			
			Label label1			= new Label("Bitte gib deinen Namen ein:");
			
			nameWindow.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
			nameWindow.setSize(new Dimension(200,100));
			
			namePanel.add("North", label1);
			namePanel.add("Center", nameField);
			namePanel.add("South", sendName);
			
			nameWindow.add(namePanel);
			
			nameWindow.setVisible(true);
			
			sendName.addActionListener(new ActionListener() {
				
				public void actionPerformed(ActionEvent e) {

					temp_name=nameField.getText();
					
					//System.out.println(nameField.getText());
					
					if(temp_name.length()>0) {
						
						for(int i=0;i<temp_name.length();i++) {	
							
							if(temp_name.substring(i,i+1).equals(" ") || temp_name.substring(i,i+1).equals(" ") ) {
								
								temp_name=temp_name.substring(0,i);
								
							}
							
							if(temp_name.equals(""))	{
								
								System.exit(7);
							}
						
						}
						
						Chatclient.chat_thread.name=temp_name;
						Chatclient.chat_thread.start();
						Chatclient.userlist_thread.start();
						
						nameWindow.setVisible(false);			
						mainFrame.setVisible(true);
						
					} else {
						
						System.exit(7);
						
					}			
				}			
			});
		}
	}
	
	public static void main(String[] args) {
		
		initGUI();
		
	}

}
```


```
package lokalChat;

import java.awt.*;
import java.awt.event.ActionEvent;
import java.io.*;
import java.net.*;
import java.text.SimpleDateFormat;
import java.util.*;
import javax.swing.*;
import javax.swing.text.BadLocationException;
import javax.swing.text.html.HTML;
import javax.swing.text.html.HTMLDocument;
import javax.swing.text.html.HTMLEditorKit;


class Chat_Thread extends Thread implements Runnable
{
	public static final int PORT = 1313;

	Socket socket;
	static DataInputStream in;
	PrintStream out;
	Thread thread;
	static String name;
	
	static ImageIcon smilie1;
	
	public void start()
	{
		
		try	{
			
			socket = new Socket("localhost",PORT);

			in = new DataInputStream(socket.getInputStream());
			out = new PrintStream(socket.getOutputStream());
			
		} catch(IOException e) {	
			
			say("Verbindung zum Server fehlgeschlagen!");
			System.exit(1);
			
		}

		say("Verbindung zum Server aufgenommen...");
		say(""+name+" betritt den Chat");	
		
		if(thread == null)
		{
			thread = new Thread(this);
			thread.setPriority(Thread.MIN_PRIORITY);
			thread.start();
		}
	}
	
	public void run()
	{
		String line;

		try
		{
			
			while(true)
			{
				line = in.readLine();
				if(line != null) {
					
					// An dieser Stelle muessen wir die Smilies ersetzen

					//Chatclient.output.append(line+'\n');
					Chatclient.output.setText(Chatclient.output.getText()+line+"\n");
				}			
			}
		} catch(IOException e) {
			say("Verbindung zum Server abgebrochen");
		}
	}

	public void action(ActionEvent evt)	{
		
		if(Chatclient.input.getCaretPosition() > 0) {
		
			SimpleDateFormat sdf = new SimpleDateFormat("HH:mm:ss");
			String uhrzeit = sdf.format(new Date());			
			
			out.println("|("+uhrzeit+")("+name+") "+Chatclient.input.getText());
			Chatclient.input.setText("");
			
		}		
	}	

	public void say(String msg)	{
		
		//Chatclient.output.append("*** "+msg+" ***\n");
		Chatclient.output.setText(Chatclient.output.getText()+"*** "+msg+" ***\n");		
	}
}
```


----------

