⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 chatpanel.java

📁 piweurrrrq i o fhsadhfka fd dskajc zxkjcnkjsahc
💻 JAVA
📖 第 1 页 / 共 2 页
字号:
/* * Copyright (c) 2000 Lyrisoft Solutions, Inc. * Used by permission */package com.lyrisoft.chat.client.gui.awt102;import java.awt.*;import java.util.StringTokenizer;import java.util.NoSuchElementException;import com.lyrisoft.chat.Translator;import com.lyrisoft.chat.ICommands;import com.lyrisoft.chat.client.gui.IChatRoom;import com.lyrisoft.chat.client.gui.IChatClientInputReceiver;import com.lyrisoft.chat.client.gui.IChatGUIFactory;import com.lyrisoft.chat.client.gui.IQuery;import com.lyrisoft.chat.client.gui.IQueryCallback;import com.lyrisoft.awt.*;/** * JDK1.0.2 compliant ChatPanel. * * This object implements IChatRoom.  It is a Panel, not a Frame.  This way, we * can stick these things anywhere, not necessarily just in a frame. */public class ChatPanel extends Panel implements IChatRoom, IQueryCallback {    protected Color bgColor;    protected IChatClientInputReceiver _inputReceiver;    protected String _room;    protected String _title;    protected IChatGUIFactory _factory;        protected GridBagLayout gridbag = new GridBagLayout();    protected TextArea txtMessages;    protected List lstUsers;    protected TextField txtInput;    protected Panel _buttonPanel;        protected Component btnClose;    protected Component btnEmote;    protected Component btnPing;    protected Component btnUserInfo;    protected Component btnEmotePrivate;    protected Component btnPrivate;    protected Component btnStats;    protected Component btnHelp;    protected MenuItem miPrivate = new MenuItem(Translator.getMessage("label.private"));    protected MenuItem miEmotePrivate = new MenuItem(Translator.getMessage("label.mesg"));    protected MenuItem miEmote = new MenuItem(Translator.getMessage("label.emote"));    protected MenuItem miStats = new MenuItem(Translator.getMessage("label.stats"));    protected MenuItem miPing = new MenuItem(Translator.getMessage("label.ping"));    protected MenuItem miWhois = new MenuItem(Translator.getMessage("label.whois"));    protected boolean _showingBigButtons = true;    protected static final int PING = 0;    protected static final int PRIVATE = 1;    protected static final int EMOTE = 2;    protected static final int PRIVATE_EMOTE = 3;    protected static final int WHOIS = 4;    // Netscape for Mac doesn't like my pop up dialog windows....    public static boolean s_useDialogs = false;    public ChatPanel(IChatGUIFactory factory, String room, String title,                     IChatClientInputReceiver inputReceiver)     {        _title = title;        _factory = factory;        bgColor = (Color)factory.getAttribute("bgColor");        if (bgColor == null) {            bgColor = new Color(0x384CC7);        }        _room = room;        _inputReceiver = inputReceiver;        try {            jbInit();        }        catch(Exception e) {            e.printStackTrace();        }    }    public ChatPanel(IChatGUIFactory factory, String room,                     IChatClientInputReceiver inputReceiver)     {        this(factory, room, room, inputReceiver);    }    public String getName() {        return _room;    }    public void requestFocus() {        txtInput.requestFocus();    }    // receive messages from the ChatPanel    public void inputEvent(String txt) {        _inputReceiver.inputEvent(_room, txt);    }    public void displayPrivateMessage(String user, String message) {        displayMessage(Translator.getMessage("private", user, message));    }    public void displayPrivateEmote(String user, String message) {        displayMessage(Translator.getMessage("mesg", user, message));    }    public void displayMessage(String user, String message) {        displayMessage(user + ": " + message);    }    public void displayMessage(String message) {        txtMessages.appendText(message + "\n");    }    public void displayError(String error) {//        _factory.playAudioClip("error.au");        displayMessage(Translator.getMessage("error", error));    }    public void setUserList(String[] users) {        synchronized (lstUsers) {            lstUsers.clear();            for (int i=0; i < users.length; i++) {                lstUsers.addItem(users[i]);            }            lstUsers.invalidate();            lstUsers.getParent().validate();            lstUsers.repaint();            lstUsers.getParent().repaint();        }    }    public String[] getUserList() {        synchronized (lstUsers) {            String[] list = new String[lstUsers.countItems()];            for (int i=0; i < list.length; i++) {                list[i] = lstUsers.getItem(i);            }            return list;        }    }    public void userJoinedRoom(String user) {        displayMessage(Translator.getMessage("joined", user));        if (!listContains(user)) {            lstUsers.addItem(user);            lstUsers.invalidate();            lstUsers.getParent().validate();            lstUsers.repaint();            lstUsers.getParent().repaint();        }    }    private boolean listContains(String s) {        int len = lstUsers.countItems();        for (int i=0; i < len; i++) {            if (s.equals(lstUsers.getItem(i))) {                return true;            }        }        return false;    }    public void userPartedRoom(String user, boolean signoff) {        if (signoff) {            displayMessage(Translator.getMessage("part2", user));        } else {            displayMessage(Translator.getMessage("part1", user));        }        int len = lstUsers.countItems();        for (int i=0; i < len; i++) {            if (user.equals(lstUsers.getItem(i))) {                lstUsers.delItem(i);                lstUsers.invalidate();                lstUsers.repaint();                break;            }        }    }    protected Component createTextWidget() {        txtMessages = new TextArea();        txtMessages.setBackground(Color.white);        txtMessages.setText("");        txtMessages.setEditable(false);        return txtMessages;    }    protected Component createTitleArea() {        Label l = new Label(_title);        l.setBackground(bgColor);        l.setForeground(Color.white);        l.setFont(new Font("Dialog", Font.BOLD, 14));        return l;    }    private void jbInit() throws Exception {        setLayout(gridbag);        Component lblTitle = createTitleArea();        if (lblTitle != null) {            gridbag.setConstraints(lblTitle,                                   Constraints.create(0, 0, 2, 1, 1.0, 0,                                                      GridBagConstraints.WEST,                                                      GridBagConstraints.BOTH,                                                      new Insets(0, 0, 0, 0), 0, 0));            add(lblTitle);        }                    Component c = createButtonPanel();        _buttonPanel = new Panel();        _buttonPanel.setBackground(bgColor);        GridBagLayout gb2 = new GridBagLayout();        _buttonPanel.setLayout(gb2);        gb2.setConstraints(c, Constraints.create(0, 0, 1, 1, 1.0, 1.0,                                                GridBagConstraints.EAST,                                                GridBagConstraints.NONE,                                                new Insets(0, 0, 0, 0), 0, 0));        _buttonPanel.add(c);        gridbag.setConstraints(_buttonPanel,                               Constraints.create(0, 1, 2, 1, 1.0, 0,                                                  GridBagConstraints.EAST,                                                  GridBagConstraints.HORIZONTAL,                                                  new Insets(0, 0, 0, 0), 0, 0));        add(_buttonPanel);        Component txtWidget = createTextWidget();        gridbag.setConstraints(txtWidget,                               Constraints.create(0, 2, 1, 1, 1.0, 1.0,                                                  GridBagConstraints.CENTER,                                                  GridBagConstraints.BOTH,                                                  new Insets(0, 0, 0, 0), 0, 0));        add(txtWidget);        lstUsers = new List();        gridbag.setConstraints(lstUsers,                               Constraints.create(1, 2, 1, 1, 0.0, 1.0,                                                  GridBagConstraints.CENTER,                                                  GridBagConstraints.VERTICAL,                                                  new Insets(0, 0, 0, 0), 0, 0));        add(lstUsers);        txtInput = new TextField();        txtInput.setBackground(Color.white);        gridbag.setConstraints(txtInput,                               Constraints.create(0, 3, 2, 1, 1.0, 0.0,                                                  GridBagConstraints.WEST,                                                  GridBagConstraints.HORIZONTAL,                                                  new Insets(0, 0, 0, 0), 0, 4));        add(txtInput);    }    protected Component createButton(String img, String name) {        if (img != null) {            try {                Image i = _factory.getImage(img);                if (i != null && i.getHeight(this) > 0 && i.getWidth(this) > 0) {                    return new ImageButton(i, name);                }            }            catch (Exception e) {                e.printStackTrace();            }        }        Button b = new Button(name);

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -