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

📄 autoscrolltextpane.java

📁 一款即时通讯软件
💻 JAVA
📖 第 1 页 / 共 2 页
字号:
package edu.ou.kmi.buddyspace.utils;

/*
 * AutoScrollTextPane.java
 *
 * Project: BuddySpace
 * (C) Copyright Knowledge Media Institute 2002
 *
 *
 * Created on 8 November 2002, 14:45
 */

import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
import javax.swing.text.*;
import java.util.*;

/**
 * <code>AutoScrollTextPane</code> is <code>JTextPane</code> subclass which
 * provides styles for IM and automatically scrolls to the top or bottom.
 *
 * @author  Jiri Komzak, Knowledge Media Institute, Open University, United Kingdom
 */
public class AutoScrollTextPane extends JTextPane {
    
    protected Document doc;
    protected boolean autoScrollDown = true;
    
    /** styles */
    public static final String REGULAR_STYLE      = "regular";
    
    protected static final String NICK_STYLE      = "nick";
    public static final String MY_NICK_STYLE      = "myNick";
    public static final String BUDDY_NICK_STYLE   = "buddyNick";
    public static final String PRESENCE_STYLE     = "presence";
    public static final String TIME_STAMP_STYLE   = "timeStamp";
    public static final String SMILEYS_STYLE      = "smileys";
    public static final String URL_STYLE          = "url";
    public static final String URL_DESC_STYLE     = "urlDesc";
    public static final String HTML_STYLE         = "html";
    
    public static final String SENT_XML_STYLE     = "sentXML";
    public static final String RECEIVED_XML_STYLE = "receivedXML";
    public static final String SEND_ERR_XML_STYLE = "sendErrXML";
    
    /** hashtables for conversion between emoticons and their icons */
    public static Hashtable smiliesHashtable = new Hashtable();
    public static Hashtable smiliesBackHashtable = new Hashtable();
    
    /** array of emoticon strings */
    public static final String[] smileyStrs = {":-)",
                                               ":)",
                                               ":-(",
                                               ":((",
                                               ":-O",
                                               ":-P",
                                               ":p",
                                               ";-)",
                                               ";)",
                                               ":-|",
                                               ":|",
                                               "(H)",
                                               "(h)",
                                               "B-)",
                                               ":'(",
                                               ":(",
                                               "X-(",
                                               ":-@",
                                               ":@",
                                               ":D",
                                               ":-D",
                                               ":d",
                                               "(F)",
                                               "(f)",
                                               "@};-",
                                               "(B)",
                                               "(b)",
                                               "(D)",
                                               "(d)",
                                               "(C)",
                                               "(c)",
                                               "~o)",
                                               "(Y)",
                                               "(y)",
                                               "(N)",
                                               "(n)",
                                               ":o)",
                                               ":'-("};
                                             
    /** array of emoticon icon filenames */
    public static final String[] smileyFiles = {"images/happy.gif",
                                                "images/sad.gif",
                                                "images/shock.gif",
                                                "images/tongue.gif",
                                                "images/wink.gif",
                                                "images/straight_face.gif",
                                                "images/cool.gif",
                                                "images/crying.gif",
                                                "images/angry.gif",
                                                "images/big_grin2.gif",
                                                "images/flower.gif",
                                                "images/beer2.gif",
                                                "images/beer.gif",
                                                "images/tea.gif",
                                                "images/thumbs_up.gif",
                                                "images/thumbs_down.gif",
                                                "images/clown.gif",};
    /** array of emoticon icons */
    public static ImageIcon[] smileyIcons;
    
    /**
     * Constructor defining if the pane will automatically scroll to
     * the top or bottom.
     */
    public AutoScrollTextPane(boolean autoScrollDown) {
        
        super();
        setEditable(false);
        
        doc = getDocument();
        this.autoScrollDown = autoScrollDown;
        
        addComponentListener(new ComponentAdapter() {
            public void componentResized(ComponentEvent e) {
                scroll();
            }
        });
        
        initSmilies();
        initStyles();
    }
    
    
    /** Initiates smilies hashtable */
    protected void initSmilies() {
        // inits smiley icons
        smileyIcons = new ImageIcon[smileyFiles.length];
        for (int i=0; i<smileyFiles.length; i++)
            smileyIcons[i] = new ImageIcon(ClassLoader.getSystemResource(smileyFiles[i]));

        // inits smiley hashtable
        //happy
        smiliesHashtable.put(smileyStrs[0], smileyIcons[0]);
        smiliesHashtable.put(smileyStrs[1], smileyIcons[0]);
        smiliesBackHashtable.put(smileyIcons[0], smileyStrs[0]);
        //sad
        smiliesHashtable.put(smileyStrs[2], smileyIcons[1]);
        smiliesHashtable.put(smileyStrs[15], smileyIcons[1]);
        smiliesBackHashtable.put(smileyIcons[1], smileyStrs[2]);
        //shock
        smiliesHashtable.put(smileyStrs[4], smileyIcons[2]);
        smiliesBackHashtable.put(smileyIcons[2], smileyStrs[4]);
        //tongue
        smiliesHashtable.put(smileyStrs[5], smileyIcons[3]);
        smiliesHashtable.put(smileyStrs[6], smileyIcons[3]);
        smiliesBackHashtable.put(smileyIcons[3], smileyStrs[5]);
        //wink
        smiliesHashtable.put(smileyStrs[7], smileyIcons[4]);
        smiliesHashtable.put(smileyStrs[8], smileyIcons[4]);
        smiliesBackHashtable.put(smileyIcons[4], smileyStrs[7]);
        //straight_face
        smiliesHashtable.put(smileyStrs[9], smileyIcons[5]);
        smiliesHashtable.put(smileyStrs[10], smileyIcons[5]);
        smiliesBackHashtable.put(smileyIcons[5], smileyStrs[9]);
        //cool
        smiliesHashtable.put(smileyStrs[11], smileyIcons[6]);
        smiliesHashtable.put(smileyStrs[12], smileyIcons[6]);
        smiliesHashtable.put(smileyStrs[13], smileyIcons[6]);
        smiliesBackHashtable.put(smileyIcons[6], smileyStrs[13]);
        //crying
        smiliesHashtable.put(smileyStrs[14], smileyIcons[7]);
        smiliesHashtable.put(smileyStrs[3], smileyIcons[7]);
        smiliesHashtable.put(smileyStrs[37], smileyIcons[7]);
        smiliesBackHashtable.put(smileyIcons[7], smileyStrs[14]);
        //angry
        smiliesHashtable.put(smileyStrs[16], smileyIcons[8]);
        smiliesHashtable.put(smileyStrs[17], smileyIcons[8]);
        smiliesHashtable.put(smileyStrs[18], smileyIcons[8]);
        smiliesBackHashtable.put(smileyIcons[8], smileyStrs[16]);
        //big_grin2
        smiliesHashtable.put(smileyStrs[19], smileyIcons[9]);
        smiliesHashtable.put(smileyStrs[20], smileyIcons[9]);
        smiliesHashtable.put(smileyStrs[21], smileyIcons[9]);
        smiliesBackHashtable.put(smileyIcons[9], smileyStrs[19]);
        //flower
        smiliesHashtable.put(smileyStrs[22], smileyIcons[10]);

⌨️ 快捷键说明

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