<output id="qn6qe"></output>

    1. <output id="qn6qe"><tt id="qn6qe"></tt></output>
    2. <strike id="qn6qe"></strike>

      亚洲 日本 欧洲 欧美 视频,日韩中文字幕有码av,一本一道av中文字幕无码,国产线播放免费人成视频播放,人妻少妇偷人无码视频,日夜啪啪一区二区三区,国产尤物精品自在拍视频首页,久热这里只有精品12

      Java中截獲標(biāo)準(zhǔn)輸出到GUI控件

      以前在使用Java開發(fā)項(xiàng)目時(shí),曾遇到這么一種情景:在一個(gè)Eclipse插件工程中,當(dāng)插件運(yùn)行后進(jìn)行多線程仿真執(zhí)行,這時(shí)需要捕獲并輸出Java的標(biāo)準(zhǔn)輸出流和錯(cuò)誤流。

      1. 解決思路

      Java中System類提供了可以重定向的方法setOut(PrintStream out)、setErr(PrintStream err)、setIn(InputStream in)。因此,使用setOut和setErr就夠了,這二個(gè)方法都要傳入一個(gè)PrintStream類型的參數(shù),只要在調(diào)用打印信息的前面調(diào)用這二個(gè)方法重設(shè)輸出流和錯(cuò)誤流就可以達(dá)到我們的目的。因此,通過繼承PrintStream類,并把要顯示信息的組件作為參數(shù)傳入到這個(gè)自定義的打印流類PrintStream中。

      2. 代碼示例

      View Code
       1 /**
      2 * @author ypf
      3 * @version 1.0
      4 * Created on 2009-11-4
      5 * Description: the override PrintStream for catching Java standard
      6 * console output to SWT dialog's Text control.
      7 */
      8 publicclass ConsolePrintStream extends PrintStream {
      9 private Text text;
      10
      11 public ConsolePrintStream(OutputStream out, Text text) {
      12 super(out);
      13 this.text = text;
      14 }
      15
      16 /**
      17 * 重截write方法,所有的打印方法都要調(diào)用的方法
      18 */
      19 publicvoid write(byte[] buf, int off, int len) {
      20 final String message =new String(buf, off, len);
      21 if (text !=null&&!text.isDisposed()) {
      22 /* SWT非界面線程訪問組件的方式 */
      23 Display.getDefault().syncExec(new Thread() {
      24 publicvoid run() {
      25 /* 在這里把信息添加到組件中 */
      26 text.append(message);
      27 }
      28 });
      29 } else {
      30 super.write(buf, off, len);
      31 }
      32 }
      33 }

       

      注意:確保GUI組件在調(diào)用打印信息添加前已經(jīng)被正確創(chuàng)建的,另外必須注冊不同GUI組件對線程的訪問形式,像上面的SWT就對界面的訪問有嚴(yán)格的規(guī)定。

      3. 使用方法

      在啟動GUI界面程序之后,按照如下方式調(diào)用代碼:

      View Code
      1 ConsolePrintStream cps=new  ConsolePrintStream(System.out, text); // text為GUI組件
      2
      3 System.setOut(cps);
      4
      5 System.setErr(cps);

      之后,Java標(biāo)準(zhǔn)輸出和標(biāo)準(zhǔn)錯(cuò)誤就被重定向到設(shè)置的GUI組件上了。

       

      posted on 2011-08-14 12:34  大圓那些事  閱讀(2871)  評論(0)    收藏  舉報(bào)

      導(dǎo)航

      主站蜘蛛池模板: 日本一区二区精品色超碰| 国产精品人妻| 香蕉久久夜色精品国产成人| 亚洲欧洲日产国码高潮αv| 馆陶县| 国产亚洲真人做受在线观看| 色悠悠国产精品免费观看| 欧美激情 亚洲 在线| 少妇被粗大的猛烈进出动视频 | 综合色在线| 亚洲av成人精品日韩一区| 色8久久人人97超碰香蕉987| 亚洲人成网线在线播放VA| 亚洲国产精品午夜福利| 好姑娘高清影视在线观看| 通渭县| 色一伊人区二区亚洲最大| 性色欲情网站iwww九文堂| 欧美叉叉叉bbb网站| 嫩草欧美曰韩国产大片| 国产一区二区不卡在线| japan黑人极大黑炮| 亚洲中文无码手机永久| 日本免费精品| A级日本乱理伦片免费入口| 久久亚洲精品天天综合网| 在线日韩日本国产亚洲| av日韩在线一区二区三区| 亚洲VA成无码人在线观看天堂| 中文字幕在线精品国产| 亚洲乱码一区二区三区视色| 久久99精品久久久久久琪琪| 国产一区二区av天堂热| 日99久9在线 | 免费| 九九热免费在线视频观看| 久久久久久久久久久免费精品| 国产色a在线观看| 久久毛片少妇高潮| 欧美人与禽2o2o性论交| 色偷偷亚洲女人天堂观看| 乱子伦视频在线看|