亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來(lái)到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? detailpanel.java

?? log4j的源碼
?? JAVA
字號(hào):
/* * Copyright 1999-2005 The Apache Software Foundation. *  * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at *  *      http://www.apache.org/licenses/LICENSE-2.0 *  * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */package org.apache.log4j.chainsaw;import java.awt.BorderLayout;import java.text.MessageFormat;import java.util.Date;import javax.swing.BorderFactory;import javax.swing.JEditorPane;import javax.swing.JPanel;import javax.swing.JScrollPane;import javax.swing.JTable;import javax.swing.ListSelectionModel;import javax.swing.event.ListSelectionEvent;import javax.swing.event.ListSelectionListener;import org.apache.log4j.Logger;/** * A panel for showing a stack trace. * * @author <a href="mailto:oliver@puppycrawl.com">Oliver Burn</a> */class DetailPanel    extends JPanel    implements ListSelectionListener{    /** used to log events **/    private static final Logger LOG =        Logger.getLogger(DetailPanel.class);    /** used to format the logging event **/    private static final MessageFormat FORMATTER = new MessageFormat(        "<b>Time:</b> <code>{0,time,medium}</code>" +        "&nbsp;&nbsp;<b>Priority:</b> <code>{1}</code>" +        "&nbsp;&nbsp;<b>Thread:</b> <code>{2}</code>" +        "&nbsp;&nbsp;<b>NDC:</b> <code>{3}</code>" +        "<br><b>Logger:</b> <code>{4}</code>" +        "<br><b>Location:</b> <code>{5}</code>" +        "<br><b>Message:</b>" +        "<pre>{6}</pre>" +        "<b>Throwable:</b>" +        "<pre>{7}</pre>");    /** the model for the data to render **/    private final MyTableModel mModel;    /** pane for rendering detail **/    private final JEditorPane mDetails;    /**     * Creates a new <code>DetailPanel</code> instance.     *     * @param aTable the table to listen for selections on     * @param aModel the model backing the table     */    DetailPanel(JTable aTable, final MyTableModel aModel) {        mModel = aModel;        setLayout(new BorderLayout());        setBorder(BorderFactory.createTitledBorder("Details: "));        mDetails = new JEditorPane();        mDetails.setEditable(false);        mDetails.setContentType("text/html");        add(new JScrollPane(mDetails), BorderLayout.CENTER);        final ListSelectionModel rowSM = aTable.getSelectionModel();        rowSM.addListSelectionListener(this);    }    /** @see ListSelectionListener **/    public void valueChanged(ListSelectionEvent aEvent) {        //Ignore extra messages.        if (aEvent.getValueIsAdjusting()) {            return;        }        final ListSelectionModel lsm = (ListSelectionModel) aEvent.getSource();        if (lsm.isSelectionEmpty()) {            mDetails.setText("Nothing selected");        } else {            final int selectedRow = lsm.getMinSelectionIndex();            final EventDetails e = mModel.getEventDetails(selectedRow);            final Object[] args =            {                new Date(e.getTimeStamp()),                e.getPriority(),                escape(e.getThreadName()),                escape(e.getNDC()),                escape(e.getCategoryName()),                escape(e.getLocationDetails()),                escape(e.getMessage()),                escape(getThrowableStrRep(e))            };            mDetails.setText(FORMATTER.format(args));            mDetails.setCaretPosition(0);        }    }    ////////////////////////////////////////////////////////////////////////////    // Private methods    ////////////////////////////////////////////////////////////////////////////    /**     * Returns a string representation of a throwable.     *     * @param aEvent contains the throwable information     * @return a <code>String</code> value     */    private static String getThrowableStrRep(EventDetails aEvent) {        final String[] strs = aEvent.getThrowableStrRep();        if (strs == null) {            return null;        }        final StringBuffer sb = new StringBuffer();        for (int i = 0; i < strs.length; i++) {            sb.append(strs[i]).append("\n");        }        return sb.toString();    }    /**     * Escape &lt;, &gt; &amp; and &quot; as their entities. It is very     * dumb about &amp; handling.     * @param aStr the String to escape.     * @return the escaped String     */    private String escape(String aStr) {        if (aStr == null) {            return null;        }        final StringBuffer buf = new StringBuffer();        for (int i = 0; i < aStr.length(); i++) {            char c = aStr.charAt(i);            switch (c) {            case '<':                buf.append("&lt;");                break;            case '>':                buf.append("&gt;");                break;            case '\"':                buf.append("&quot;");                break;            case '&':                buf.append("&amp;");                break;            default:                buf.append(c);                break;            }        }        return buf.toString();    }}

?? 快捷鍵說(shuō)明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
天天综合网天天综合色| 欧美经典三级视频一区二区三区| 美女诱惑一区二区| 久久精品一区二区三区不卡牛牛| 成人激情午夜影院| 亚洲国产成人tv| 久久伊99综合婷婷久久伊| 欧美xxx久久| 99久久精品免费精品国产| 亚洲一卡二卡三卡四卡| 精品国产一区二区三区忘忧草| 成人中文字幕电影| 日韩激情在线观看| 精品国产sm最大网站免费看| av日韩在线网站| 久久99精品国产.久久久久| 久久综合资源网| 欧美日韩免费一区二区三区| 国产福利精品一区二区| 亚洲高清视频的网址| 国产拍揄自揄精品视频麻豆| 在线观看国产日韩| 国产自产视频一区二区三区| 一区二区不卡在线播放| 国产日韩一级二级三级| 欧美二区在线观看| av电影在线观看完整版一区二区 | 国产精品久久久久久久岛一牛影视| 欧美这里有精品| 成人免费视频播放| 精品一区二区三区日韩| 亚洲综合视频网| 中文字幕欧美一| 欧美一区二区福利在线| 欧美性大战久久久久久久| 蜜桃91丨九色丨蝌蚪91桃色| 亚洲一区二区三区影院| 日韩一区二区三区三四区视频在线观看| 国产成人免费在线观看不卡| 日韩国产精品久久| 亚洲美女在线国产| 综合亚洲深深色噜噜狠狠网站| 国产精品网站在线观看| 亚洲欧美一区二区在线观看| 国产欧美精品国产国产专区 | 欧美一二区视频| 欧美大片顶级少妇| 精品成人私密视频| 久久久久久久久免费| 国产视频一区二区三区在线观看| 久久精品在线观看| 国产精品久久久久久亚洲毛片 | 欧美亚洲综合另类| 欧美亚洲一区二区在线观看| 欧美吻胸吃奶大尺度电影| 欧美日韩成人激情| 欧美一区二区在线观看| 精品毛片乱码1区2区3区| 久久久综合九色合综国产精品| 久久尤物电影视频在线观看| 国产欧美一二三区| 洋洋成人永久网站入口| 午夜国产精品一区| 国产一区二区精品久久99| 本田岬高潮一区二区三区| 色噜噜夜夜夜综合网| 欧美区在线观看| 日韩精品一区在线| 国产精品白丝在线| 亚洲午夜电影网| 极品少妇xxxx精品少妇偷拍| 成人黄色软件下载| 欧美日韩激情在线| 国产欧美视频在线观看| 亚洲一区免费观看| 九九九精品视频| 91蝌蚪porny| 91精品国产综合久久久蜜臀粉嫩 | 亚洲综合视频在线观看| 麻豆久久久久久| 91日韩在线专区| 五月激情综合色| 成人精品一区二区三区四区| 欧美日韩一区三区四区| 久久久久久久久久美女| 亚洲国产精品久久一线不卡| 国产伦精一区二区三区| 91国在线观看| 久久精品一区二区三区不卡 | 国产成人综合精品三级| 欧美日韩精品久久久| 国产日韩欧美制服另类| 五月天久久比比资源色| 成人app在线| 欧美xxxxx裸体时装秀| 亚洲精品国产精品乱码不99| 狠狠色丁香婷婷综合| 色综合激情五月| 国产欧美一区二区在线| 天堂蜜桃91精品| 91热门视频在线观看| 亚洲精品一区二区在线观看| 亚洲午夜久久久久久久久电影院 | 欧美三电影在线| 国产欧美一二三区| 六月丁香婷婷色狠狠久久| 91麻豆.com| 国产精品国产自产拍在线| 久久99精品久久久久久| 欧美视频一二三区| 亚洲视频资源在线| 国产v日产∨综合v精品视频| 欧美一区二区在线免费播放| 亚洲一区二区三区影院| 97精品国产露脸对白| 欧美激情中文字幕| 国产精品亚洲专一区二区三区| 欧美一区午夜精品| 天天做天天摸天天爽国产一区| 91老师片黄在线观看| 1000精品久久久久久久久| 国产成人一级电影| 精品国产精品网麻豆系列| 日韩二区三区在线观看| 欧美日韩免费不卡视频一区二区三区| 亚洲同性同志一二三专区| 成人激情图片网| 国产精品卡一卡二| 岛国精品在线观看| 久久精品亚洲国产奇米99| 青青草97国产精品免费观看无弹窗版 | 午夜精品一区二区三区电影天堂| 激情综合色播激情啊| 日韩一级黄色大片| 日韩精品午夜视频| 欧美日韩一卡二卡| 亚洲一二三四久久| 欧美系列亚洲系列| 一区二区不卡在线播放 | 欧美福利视频导航| 在线欧美日韩国产| 亚洲午夜羞羞片| 欧美久久久久久久久中文字幕| 亚洲国产综合91精品麻豆| 在线一区二区三区四区五区| 亚洲区小说区图片区qvod| 在线欧美日韩精品| 日产国产欧美视频一区精品| 制服丝袜av成人在线看| 免费观看成人av| 国产色一区二区| 91亚洲精品乱码久久久久久蜜桃| 亚洲免费资源在线播放| 欧美性大战久久久| 免费的成人av| 国产亚洲视频系列| 成人av在线影院| 亚洲一区二区三区四区不卡| 7777精品伊人久久久大香线蕉最新版 | 精品久久国产字幕高潮| 国产精品小仙女| 亚洲欧美在线另类| 欧美日产在线观看| 国产精品一区在线观看你懂的| 中文字幕国产一区| 欧美日韩高清影院| 国产精品伊人色| 伊人色综合久久天天人手人婷| 欧美喷潮久久久xxxxx| 激情图片小说一区| 亚洲乱码日产精品bd | 亚洲国产电影在线观看| 在线免费亚洲电影| 激情丁香综合五月| 亚洲美女免费视频| 欧美videossexotv100| 成人中文字幕在线| 日韩激情在线观看| 国产精品伦一区二区三级视频| 欧美日韩在线亚洲一区蜜芽| 精品一区二区久久| 亚洲综合男人的天堂| 久久久久久久久免费| 欧美三级视频在线| 成人av资源站| 免费三级欧美电影| 亚洲欧洲美洲综合色网| 91精品欧美久久久久久动漫 | 日本不卡视频在线观看| 国产精品对白交换视频| 555夜色666亚洲国产免| 成人免费观看视频| 美女一区二区视频| 一区二区免费看| 中文字幕不卡在线观看| 日韩一级黄色大片| 欧美性一区二区| 99在线精品视频| 国产精品1024| 久久精品噜噜噜成人av农村|