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

📄 jmtextarea.java.svn-base

📁 梦界家园程序开发基底框架
💻 SVN-BASE
📖 第 1 页 / 共 3 页
字号:
     * setLengthMethod
     * 暥帤楍挿偺敾掕曽朄傪愝掕偡傞丅
     * @param aiLengthMethod : 暥帤楍偺敾掕曽朄傪巜掕偡傞丅敾掕曽朄偼師偺抣傪巜掕偡傞丅
     *          抣                   愢柧
     *          LENGTH_BY_UNICODE    UNICODE 僉儍儔僋僞悢偵傛傝敾掕偡傞丅
     *          LENGTH_BY_NATIVE     OS偺昗弨暥帤僙僢僩偵傛傞僶僀僩悢偵傛傝敾掕偡傞丅
     * @return boolean : 惉岟偺帪偵true傪曉傞丄堷悢偑晄惓側応崌偵false傪曉傞丅
     */
    public boolean setLengthMethod (int aiLengthMethod) {
        if (aiLengthMethod != LENGTH_BY_UNICODE &&
            aiLengthMethod != LENGTH_BY_NATIVE) {
            return false;
        } // END IF
        piLengthMethod = aiLengthMethod;
        return true;
    } // END setLengthMethod(int)

    /**
     * setMaxLength
     * 擖椡壜擻側嵟戝暥帤楍挿傪愝掕偡傞丅
     * @param aiMaxLength : 嵟戝暥帤楍挿傪巜掕偡傞丅
     * @return boolean    : 惉岟偺帪偵true傪曉傞丄堷悢偑晄惓側応崌偵false傪曉傞丅
     */
    public boolean setMaxLineLength (int aiMaxLength) {
        if (aiMaxLength < 0) {
            return false;
        } // END IF
        piMaxLength = aiMaxLength;
        this.setLineWrap(true);
        return true;
    } // END setMaxLength(int)

    /**
     * setMaxLineCount
     * 僥僉僗僩僄儕傾偵擖椡偱偒傞嵟戝峴悢傪愝掕偡傞丅
     * @param  aiMaxLineCount : 嵟戝峴悢傪巜掕偡傞丅
     * @return boolean        : 惉岟偺帪偺true傪曉傞丄堷悢偑晄惓側応崌偵false傪曉傞丅
     */
    public boolean setMaxLineCount (int aiMaxLineCount) {
        if (aiMaxLineCount < 0) {
            return false;
        } // END IF
        piMaxLineCount = aiMaxLineCount;
        setRows(aiMaxLineCount); //僇儔儉悢偺峏怴
        return true;
    } // END setMaxLineCount(int)

    /**
     * setRefusalCharacterMode
     * 擖椡嫅斲偡傞暥帤僙僢僩儌乕僪傪愝掕偡傞丅
     * @param aiRefusalMode : 擖椡傪嫅斲偡傞暥帤僙僢僩儌乕僪傪巜掕偡傞丅
     *                        暥帤僙僢僩儌乕僪偼師偺抣偺慻傒崌傢偣偱巜掕偡傞丅
     *                   抣                 愢柧
     *                   REFUSAL_NONE       慡偰偺暥帤庬傪嫋壜偟偰偄傞丅
     *                   REFUSAL_WIDE       慡妏暥帤偺擖椡傪嫅斲偟偰偄傞丅
     *                   REFUSAL_NUMBER     敿妏悢帤偺擖椡傪嫅斲偟偰偄傞丅
     *                   REFUSAL_ALPHABET   敿妏塸帤偺擖椡傪嫅斲偟偰偄傞丅
     *                   REFUSAL_SYMBOL     敿妏婰崋偺擖椡傪嫅斲偟偰偄傞丅
     * @return boolean : 惉岟偺帪偵true傪曉傞丄堷悢偑晄惓側応崌偵false傪曉傞丅
     */
    public boolean setRefusalCharacterMode (int aiRefusalMode) {
        if (aiRefusalMode < REFUSAL_NONE ||
            aiRefusalMode > REFUSAL_WIDE + REFUSAL_NUMBER +
            REFUSAL_ALPHABET + REFUSAL_SYMBOL) {
            return false;
        } // END IF
        piRefusalMode = aiRefusalMode;
        return true;
    } // END setRefusalCharacterMode(int)

    /**
     * setReplaceMode
     * 抲姺儌乕僪傪愝掕偡傞丅
     * @param abMode : 抲姺儌乕僪傪巜掕偡傞丅
     */
    public void setReplaceMode (boolean abMode) {
        pbReplaceMode = abMode;
    } // END setReplaceMode(boolean)

    /**
     * setMaxStringNum
     * 嵟戝暥帤悢偺愝掕
     * @param aiMaxStringNum : 巜掕偟偨嵟戝暥帤悢
     * @return boolean
     */
    public boolean setMaxStringNum (int aiMaxStringNum) {
        if (aiMaxStringNum < 0) {
            return false;
        }
        this.piMaxStringNum = aiMaxStringNum;
        return true;
    }

    /**
     * mChkStr
     * <PRE>
     *  暥帤楍偑Null偐斲偐傪僠僃僢僋
     * </PRE>
     *
     * @param   asVal  : 僠僃僢僋偡傞暥帤楍
     * @return  String : <code>Null</code>丄<code>"null"</code>丄<code>""</code>丂
     *          偺応崌<code>""</code>丄偦偺懠応崌String傪曉傞
     */
    private String mChkStr (String asVal) {
        if (asVal == null) {
            return SNULL;
        } // END IF
        if (asVal.trim().equals(STRNULL)) {
            return SNULL;
        } // END IF
        if (asVal.trim().equals(SNULL)) {
            return SNULL;
        } // END IF
        return asVal.trim();
    } // END mChkStr(String)

    /**
     * ChkSignAlpha
     * 敿妏婰崋僠僃僢僋
     * @param asval : 僠僃僢僋偡傞暥帤楍
     * @return true : YES ; false : NO
     */
    private boolean mChkSignAlpha (String asval) {
        final String psHanjh = " `~!@#$%^&*()_+|-=[]{}<>/?;':\"\\,.";
        for (int i = 0; i < psHanjh.length(); i++) {
            String pa = psHanjh.substring(i, i + 1);
            int pis = asval.indexOf(pa);
            if (pis != -1) {
                return true;
            } // END IF
        } // END FOR
        return false;
    } // END ChkSignAlpha(String)

    /**
     * calculateLines
     * 暥帤楍偺峴悢傪寁嶼偡傞
     * @param text : 寁嶼偡傞暥帤楍
     * @return int : 寁嶼偟偨峴悢
     */
    private int calculateLines (String text) {
        int lines = 1;
        JMVector<String> arr = new JMVector<String>();
        //String lineWrap = System.getProperty("line.separator");
        String lineWrap = "\n";
        int pos = -1;
        while ((pos = text.indexOf(lineWrap)) >= 0) {
            arr.add(text.substring(0, pos));
            text = text.substring(pos + 1);
        } // END WHILE
        arr.add(text);

        lines = arr.size();
        int max = getMaxLineLength();
        java.awt.FontMetrics fm = getFontMetrics(getFont());
        for (int i = 0; i < arr.size() && this.getLineWrap(); i++) {
            String s = (String) arr.get(i);
            int len = s.length();
            // 扨峴暥帤悢偺惂尷偑柍偟
            if (max == 0) {
                int curLen = 0;
                for (int j = 0; j < len; j++) {
                    int chrLen = fm.stringWidth(s.substring(j, j + 1));
                    if (curLen + chrLen > getWidth()) {
                        ++lines;
                        curLen = chrLen;
                    } else {
                        curLen += chrLen;
                    } // END IF
                } // END FOR
            }
            // 扨峴暥帤悢偺惂尷偑桳傝
            else {
                int mod = len % max;
                lines += mod > 0 ? (len - mod) / max : len / max - 1;
            } // END IF
        } // END FOR
        return lines;
    }

    /**
     * <p>pTextUI</p>
     * <p>Description: </p>
     * <p>Copyright: Copyright (c) 2003</p>
     * <p>Company: 俶俤俠僜僼僩噴</p>
     */
    class pTextAreaUI extends javax.swing.plaf.basic.BasicTextAreaUI {
        /**
         * create
         * 價儏乕偺惗惉
         * @param elem : 僄儗儊儞僩
         * @return丂惗惉偟偨價儏乕
         */
        public View create (Element elem) {
            JTextComponent c = getComponent();
            if (c instanceof JTextArea) {
                JTextArea area = (JTextArea) c;
                View v;
                if (area.getLineWrap()) {
                    v = new pWrappedPlainView(elem, area.getWrapStyleWord());
                } else {
                    v = new PlainView(elem);
                } // END IF
                return v;
            } // END IF
            return null;
        } // END create(Element)
    } // END pTextAreaUI


    /**
     * <p>pWrappedPlainView</p>
     * <p>Description: </p>
     * <p>Copyright: Copyright (c) 2003</p>
     * <p>Company: 俶俤俠僜僼僩噴</p>
     */
    class pWrappedPlainView extends WrappedPlainView {
        /**
         * pWrappedPlainView
         *
         * @param elem : 僄儗儊儞僩
         * @param b    :
         */
        public pWrappedPlainView (Element elem, boolean b) {
            super(elem, b);
        } // END pWrappedPlainView(Element, boolean)

        /**
         * calculateBreakPosition
         *
         * @param p0 : 埵抲0
         * @param p1 : 埵抲1
         * @return   : 庢摼偟偨埵抲
         */
        protected int calculateBreakPosition (int p0, int p1) {
            int p;
            if (getMaxLineLength() > 0) {
                p = p0 + Math.min(getMaxLineLength(), p1 - p0);
            } else {
                p = super.calculateBreakPosition(p0, p1);
            }
            return p;
        } // END calculateBreakPosition(int, int)
    } // END pWrappedPlainView
}

⌨️ 快捷键说明

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