??xml version="1.0" encoding="utf-8" standalone="yes"?>亚洲色无码一区二区三区,亚洲欧美在线x视频,456亚洲人成影院在线观http://www.tkk7.com/leon/<br> <br> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;像写情书一样codingzh-cnFri, 09 May 2025 18:25:06 GMTFri, 09 May 2025 18:25:06 GMT60发发牢骚http://www.tkk7.com/leon/archive/2006/11/23/83075.htmlleonleonThu, 23 Nov 2006 08:49:00 GMThttp://www.tkk7.com/leon/archive/2006/11/23/83075.htmlhttp://www.tkk7.com/leon/comments/83075.htmlhttp://www.tkk7.com/leon/archive/2006/11/23/83075.html#Feedback0http://www.tkk7.com/leon/comments/commentRss/83075.htmlhttp://www.tkk7.com/leon/services/trackbacks/83075.html
Firefox2.0d新随WJS脚本异常Q!

|/__


换了风格

leon 2006-11-23 16:49 发表评论
]]>
[Swing]?JFileChooser 中进行文仉证的技?/title><link>http://www.tkk7.com/leon/archive/2006/11/23/83023.html</link><dc:creator>leon</dc:creator><author>leon</author><pubDate>Thu, 23 Nov 2006 06:15:00 GMT</pubDate><guid>http://www.tkk7.com/leon/archive/2006/11/23/83023.html</guid><wfw:comment>http://www.tkk7.com/leon/comments/83023.html</wfw:comment><comments>http://www.tkk7.com/leon/archive/2006/11/23/83023.html#Feedback</comments><slash:comments>7</slash:comments><wfw:commentRss>http://www.tkk7.com/leon/comments/commentRss/83023.html</wfw:commentRss><trackback:ping>http://www.tkk7.com/leon/services/trackbacks/83023.html</trackback:ping><description><![CDATA[ <p>我们在做GUI~程的时候经帔R要用到JFileChooserlg构造一个文仉取对话框来为用h供打开文g、保存文件等操作?br /><br />通常的做法是调用JFileChooser.showXXX()Ҏ昄文g选取对话框ƈ且选择一个文件后Q点?font face="Courier New"><font face="Times New Roman">Approve 按钮Q默认情况下标有 "Open" ?"Save"Q?/font>Q?/font>当对话框关闭后用JFileChooser.getSelectedFile()Ҏ得到选取的文Ӟ或用JFileChooser.getSelectedFiles()取得选取的文件数l)Q然后再对被选取的文件有效性进行验证(例如Q文件的文g名是否合法、选取的\径下是否已有同名文g存在{等Q,如果验证不通过Q需要再ơ打开文g选择对话框进行选取?br /><br />昄Q验证没有通过的情况下Q文仉取对话框被反复的打开和关闭,影响用户体验?br /><br />我现在介l一个方法,在点M文g选取对话框上?font face="Courier New"><font face="Times New Roman">Approve 按钮</font>后,</font><font face="Times New Roman">文g选取对话框关闭前寚w取的文件进行验证,如果验证没有通过Q那么对话框不关闭,直接q行下一ơ选择?br /><br />查看JFileChooser的APIQ可以发现这样一个方?<u><font color="#000000"><strong>public void approveSelection()</strong></font></u> Q这个方法会在用户单?Approve 按钮时由 UI 调用此方法。导致用等?<code>APPROVE_SELECTION</code> 的命令字W串Ȁ发一个操作事件?br /><br />那么Q我们现在可以选择l承JFileChooser再覆写这个方法,对选中文g的有效性验证写入这个方法中Q只有当验证通过时才调用类的approveSelection() 完成文g选取Q否则直接返回,l箋选择新的文g?br /><br />下面是我写的一个demo以供参考:<br /><br />import java.io.File;<br />import javax.swing.JOptionPane;</font></p> <p> <font face="Times New Roman">/**<br /> * ?JFileChooser 中进行文仉证的技?br /> * @author Chen Wei<br /> * @email <a href="mailto:chenwei.mobi@gmail.com">chenwei.mobi@gmail.com</a><br /> */<br />public class JFileChooserDemo extends javax.swing.JFileChooser{<br />    <br />    public void approveSelection(){<br />        File file = getSelectedFile();<br />        <br />        // 验证文g名是否合?br />        if (!validateFileName(file.getName())) {<br />            JOptionPane.showMessageDialog(getParent(), "文g名不能包含下列Q何字W之一Q\n \\ / : * ? \" < > |");<br />            return;<br />        }else{<br />            super.approveSelection();<br />        }<br />    }<br />    <br />    /**<br />     * 验证输入字符串参数是否ؓ有效文g名?br />     * @param name 待验证的文g名字W串?br />     * @return 通过验证Q文件名无效q回 falseQ有效返?true?br />     */<br />    public static boolean validateFileName(String name) {<br />        if (name.indexOf('\\') != -1 || name.indexOf('/') != -1 ||<br />            name.indexOf(':') != -1 || name.indexOf('*') != -1 ||<br />            name.indexOf('?') != -1 || name.indexOf('"') != -1 ||<br />            name.indexOf('<') != -1 || name.indexOf('>') != -1 ||<br />            name.indexOf('|') != -1) {</font> </p> <p> <font face="Times New Roman">            return false;<br />        } else {<br />            return true;<br />        }<br />    }<br />    <br />    public static void main(String[] args){<br />        JFileChooserDemo chooser = new JFileChooserDemo();<br />        chooser.showOpenDialog(null);<br />    }<br />}</font> <br /> <br />E序q行截图Q?br /><img title="JFileChooserDemo.jpg" height="360" alt="JFileChooserDemo.jpg" src="http://www.tkk7.com/images/blogjava_net/leon/program/JFileChooserDemo.jpg" width="508" border="0" /></p> <img src ="http://www.tkk7.com/leon/aggbug/83023.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.tkk7.com/leon/" target="_blank">leon</a> 2006-11-23 14:15 <a href="http://www.tkk7.com/leon/archive/2006/11/23/83023.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>[news]chenwei.mobihttp://www.tkk7.com/leon/archive/2006/10/30/78091.htmlleonleonMon, 30 Oct 2006 09:16:00 GMThttp://www.tkk7.com/leon/archive/2006/10/30/78091.htmlhttp://www.tkk7.com/leon/comments/78091.htmlhttp://www.tkk7.com/leon/archive/2006/10/30/78091.html#Feedback0http://www.tkk7.com/leon/comments/commentRss/78091.htmlhttp://www.tkk7.com/leon/services/trackbacks/78091.html本博搬家到CSDNQ网址 http://blog.csdn.net/chenweionline ,可以通过 www.chenwei.mobi 讉KQ?/font>

leon 2006-10-30 17:16 发表评论
]]>
[tips]使用Java中文字W{换成Unicode~码http://www.tkk7.com/leon/archive/2006/10/28/77846.htmlleonleonSat, 28 Oct 2006 12:53:00 GMThttp://www.tkk7.com/leon/archive/2006/10/28/77846.htmlhttp://www.tkk7.com/leon/comments/77846.htmlhttp://www.tkk7.com/leon/archive/2006/10/28/77846.html#Feedback3http://www.tkk7.com/leon/comments/commentRss/77846.htmlhttp://www.tkk7.com/leon/services/trackbacks/77846.htmlq两天操作XML使用CJdomQ在创徏XML文gq输出到盘的时候遇C个中文编码的问题QJdom默认输出的XML~码是UTF-8Q但是文中如果出现中文字符那么该中文字W就会变成ؕ码,造成XML文g无法被正解析?/p>

UTF-8应该是可以用来表CZ文的吧?我不知道q是不是Jdom的一个BUGQJdom 1.0Qbeta?0ơ的产物哦!Q。我google了一下,大家解决q个问题的办法无非是把Jdom的输出字W集改ؓGBK或者GB2312Q但是这样就会有一些副作用Q如果在没有特定字符集(GBK或者GB2312Q的操作pȝ上不是依然不能正解析吗Q一个比较好的解军_法是先把中文转换成Unicode~码在直接输出,E序解析XML后的时候再把Unicode~码转回中文没有问题了?/p>

于是我查看了JDK的文,截至Java 5好像都没有做cM转换的类可以直接使用Q但是我发现一个类 java.util.PropertiesQ它的源代码里有两个U有QprivateQ方?loadConvert (char[] in, int off, int len, char[] convtBuf) ?saveConvert(String theString, boolean escapeSpace) 其实是做特D字W和Unicode~码字符间{换的Q我把它们提取出来,单独包装C个类里就可以使用了?/p>

下面是我包装的类 CharacterSetToolkit

/*
 * CharacterSetToolkit.java
 *
 * Created on 2006q?0?7? 下午2:06
 *
 * To change this template, choose Tools | Template Manager
 * and open the template in the editor.
 */

package mobi.chenwei.lang;

/**
 * q行字符操作的工L
 * @author Chen Wei
 * @email chenwei.mobi@gmail.com
 */
public class CharacterSetToolkit {
   
    /** Creates a new instance of CharacterSetToolkit */
    public CharacterSetToolkit() {
    }
   
    private static final char[] hexDigit = {
        '0','1','2','3','4','5','6','7','8','9','A','B','C','D','E','F'
    };
   
    private static char toHex(int nibble) {
        return hexDigit[(nibble & 0xF)];
    }
   
    /**
     * 字W串~码?Unicode ?br />     * @param theString 待{换成Unicode~码的字W串?br />     * @param escapeSpace 是否忽略I格?br />     * @return q回转换后Unicode~码的字W串?br />     */
    public static String toUnicode(String theString, boolean escapeSpace) {
        int len = theString.length();
        int bufLen = len * 2;
        if (bufLen < 0) {
            bufLen = Integer.MAX_VALUE;
        }
        StringBuffer outBuffer = new StringBuffer(bufLen);

        for(int x=0; x<len; x++) {
            char aChar = theString.charAt(x);
            // Handle common case first, selecting largest block that
            // avoids the specials below
            if ((aChar > 61) && (aChar < 127)) {
                if (aChar == '\\') {
                    outBuffer.append('\\'); outBuffer.append('\\');
                    continue;
                }
                outBuffer.append(aChar);
                continue;
            }
            switch(aChar) {
                case ' ':
                    if (x == 0 || escapeSpace)
                        outBuffer.append('\\');
                    outBuffer.append(' ');
                    break;
                case '\t':outBuffer.append('\\'); outBuffer.append('t');
                          break;
                case '\n':outBuffer.append('\\'); outBuffer.append('n');
                          break;
                case '\r':outBuffer.append('\\'); outBuffer.append('r');
                          break;
                case '\f':outBuffer.append('\\'); outBuffer.append('f');
                          break;
                case '=': // Fall through
                case ':': // Fall through
                case '#': // Fall through
                case '!':
                    outBuffer.append('\\'); outBuffer.append(aChar);
                    break;
                default:
                    if ((aChar < 0x0020) || (aChar > 0x007e)) {
                        outBuffer.append('\\');
                        outBuffer.append('u');
                        outBuffer.append(toHex((aChar >> 12) & 0xF));
                        outBuffer.append(toHex((aChar >>  8) & 0xF));
                        outBuffer.append(toHex((aChar >>  4) & 0xF));
                        outBuffer.append(toHex( aChar        & 0xF));
                    } else {
                        outBuffer.append(aChar);
                    }
            }
        }
        return outBuffer.toString();
    }
   
    /**
     * ?Unicode 码{换成~码前的Ҏ字符丌Ӏ?br />     * @param in Unicode~码的字W数l?br />     * @param off 转换的v始偏U量?br />     * @param len 转换的字W长度?br />     * @param convtBuf 转换的缓存字W数l?br />     * @return 完成转换Q返回编码前的特D字W串?br />     */
    public String fromUnicode(char[] in, int off, int len, char[] convtBuf) {
        if (convtBuf.length < len) {
            int newLen = len * 2;
            if (newLen < 0) {
                newLen = Integer.MAX_VALUE;
            }
            convtBuf = new char[newLen];
        }
        char aChar;
        char[] out = convtBuf;
        int outLen = 0;
        int end = off + len;

        while (off < end) {
            aChar = in[off++];
            if (aChar == '\\') {
                aChar = in[off++];
                if (aChar == 'u') {
                    // Read the xxxx
                    int value = 0;
                    for (int i = 0; i < 4; i++) {
                        aChar = in[off++];
                        switch (aChar) {
                        case '0':
                        case '1':
                        case '2':
                        case '3':
                        case '4':
                        case '5':
                        case '6':
                        case '7':
                        case '8':
                        case '9':
                            value = (value << 4) + aChar - '0';
                            break;
                        case 'a':
                        case 'b':
                        case 'c':
                        case 'd':
                        case 'e':
                        case 'f':
                            value = (value << 4) + 10 + aChar - 'a';
                            break;
                        case 'A':
                        case 'B':
                        case 'C':
                        case 'D':
                        case 'E':
                        case 'F':
                            value = (value << 4) + 10 + aChar - 'A';
                            break;
                        default:
                            throw new IllegalArgumentException(
                                    "Malformed \\uxxxx encoding.");
                        }
                    }
                    out[outLen++] = (char) value;
                } else {
                    if (aChar == 't') {
                        aChar = '\t';
                    } else if (aChar == 'r') {
                        aChar = '\r';
                    } else if (aChar == 'n') {
                        aChar = '\n';
                    } else if (aChar == 'f') {
                        aChar = '\f';
                    }
                    out[outLen++] = aChar;
                }
            } else {
                out[outLen++] = (char) aChar;
            }
        }
        return new String(out, 0, outLen);
    }
}



leon 2006-10-28 20:53 发表评论
]]>
[ad]city8升预告http://www.tkk7.com/leon/archive/2006/09/23/71459.htmlleonleonSat, 23 Sep 2006 06:25:00 GMThttp://www.tkk7.com/leon/archive/2006/09/23/71459.htmlhttp://www.tkk7.com/leon/comments/71459.htmlhttp://www.tkk7.com/leon/archive/2006/09/23/71459.html#Feedback2http://www.tkk7.com/leon/comments/commentRss/71459.htmlhttp://www.tkk7.com/leon/services/trackbacks/71459.html9?6日(下周二)Qcity8(www.city8.com)进行一ơ升U?/p>

更新内容Q?/p>

1、上L中环、外环以内的数据dQ这样一来整个上L数据全了,大家惛_哪,可以看到哪了?/p>

 2、三l实景窗口变大,看高g那么累了Q)

3、操作按钮重新设计,q样大家可以方便实现在街道中行走、全屏浏览等很酷的体验?/p>

4、实景地囑ֈ享:可以方便在地图添加文字表qͼ如“我的家”,q过msnQqqQblogQ论坛等方式与他人分?/p>

界面先睹为快Q?/p>

首页Q?br />homepage

搜烦l果面Q?br />main search



leon 2006-09-23 14:25 发表评论
]]>
վ֩ģ壺 պav| ޼Ƶ߹ۿ| ˳վ18ֹ| òƵ| ƵĻ| Ļ| ŷձ| Aѹۿ| ޶ַ㶮| ھƷ뿨123| ۺľƷ| ձַȫ߹ۿ| Ļ˵| ߹ۿav| ޾Ʒպav| þþþѿ| ޾Ʒ91| ޹˾þۺ| Ʒѹۿ| ޸XXXXɫ| Ƶ| AV뾫Ʒһ| ޹Ʒһž| þþwww˳| ޺ݺݾþۺһ77777| ѿƵ| ޹ŷһ| ˳վ18ֹһ | ޾Ʒ޿һ| 97Ƶ˰| þþƷƷ| þþþþƵ| ŮƵ.ַ| վɫѿ| ˬˬƬA| ĻӰԺƵ| Ѿþþþþþ| ޳| ձÿӰѿ| Ƶ߹ۿ| ձ|