RMI聊天程序,需要红色“错误”消息

时间:2012-01-06 13:51:04

标签: java colors chat

public String commando(String username, String channel, String text) throws RemoteException{
        String[] result = text.split(" ", 3);
        if(result[0].equalsIgnoreCase("/join")){
            channel = result[1];
            setChannel(channel);
            joinChannel(username, channel);
        }
        else if(result[0].equalsIgnoreCase("/leave")){
            channel = result[1];
            setChannel(channel);
            leaveChannel(username, channel);
        }
        else if(result[0].equalsIgnoreCase("/whisper")){
            for (int x=2; x<result.length; x++)
            newPrivateMessage(username, result[1], result[x]);
        }
        else if(result[0].equalsIgnoreCase("/exit")){
            System.exit(0);
        }
        else{  
        error(brukernavn, "Wrong!");
        }

        return tekst;
    }

我需要将错误设为红色。此消息(“错误!”)发送给写有/ dfdsfsd之类的用户 我在屏幕上显示了这条消息,但我无法将其显示为红色。有些想法?

编辑:

干扰:

public interface ChatFront extends Remote {
        void error(String to, String message) throws RemoteException;
}

public interface Klient extends Remote {
        void error(String to, String message) throws RemoteException;
}  

在服务器中:

class ChatFrontImpl extends UnicastRemoteObject implements ChatFront {

    private UserDAO b = new UserDAO();
    private Hashtable<String, ArrayList<String>> chanel = new Hashtable<String, ArrayList<String>>();
    private ArrayList<Klient> clients= new ArrayList<Client>();


    public ChatFrontImpl() throws RemoteException {
    }
public void error(String to, String message) throws RemoteException{
        errorTo(to, message);
    }
private void errorTo(String to, String message) throws RemoteException{
        for(Client k: clients){
            if(k.findName().equals(to)){
                k.error(to, message);
            }
        }
    }

我已经编辑了一些名字(使用挪威语),所以这对你来说可能是一个问题,但程序是有效的。唯一的问题是我无法在错误消息上获得红色

编辑2:在客户端忘记GUI:

public class GUI extends javax.swing.JFrame {

    GUILogikk gl = new GUILogikk(this);

    public void error(String to, String message){
         //chatFelt.setCaretColor(Color.RED);
        chatFelt.append("" + message + "\n");
        chatFelt.setCaretPosition(chatFelt.getText().length());
    }
}

1 个答案:

答案 0 :(得分:0)

如果您使用的是控制台窗口,则必须找到特定于操作系统的功能才能设置文本颜色。这些功能因操作系统而异,因此要么重新考虑使用控制台窗口,要么为计划使用应用程序的每个系统解决问题。如果你正在使用类似Swing的东西,你可以检查与你试图绘制的组件相关的可用文本颜色属性(setSelectedTextColor()等)。更多信息:JTextArea

如果您只想绘制Graphics对象,可以执行以下操作:

g.setColor(Color.RED);
g.drawString("WRONG!", 32, 32); // text, x, y