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

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? lzzsearch.java

?? 網頁采集系統 ================= 安裝配置 ------- 1 程序我就不說了 2 配置文件 applicationContext.xml 里面有詳細的注釋 3 已經
?? JAVA
字號:
package com.laozizhu.search.client;


import java.util.Iterator;
import java.util.List;
import net.java2000.tools.HTMLDecoder;
import org.eclipse.swt.SWT;
import org.eclipse.swt.custom.StyledText;
import org.eclipse.swt.events.SelectionAdapter;
import org.eclipse.swt.events.SelectionEvent;
import org.eclipse.swt.events.TraverseEvent;
import org.eclipse.swt.events.TraverseListener;
import org.eclipse.swt.graphics.Color;
import org.eclipse.swt.graphics.Font;
import org.eclipse.swt.graphics.Image;
import org.eclipse.swt.layout.GridData;
import org.eclipse.swt.layout.GridLayout;
import org.eclipse.swt.widgets.Button;
import org.eclipse.swt.widgets.Composite;
import org.eclipse.swt.widgets.Display;
import org.eclipse.swt.widgets.Group;
import org.eclipse.swt.widgets.Label;
import org.eclipse.swt.widgets.Shell;
import org.eclipse.swt.widgets.TabFolder;
import org.eclipse.swt.widgets.TabItem;
import org.eclipse.swt.widgets.Table;
import org.eclipse.swt.widgets.TableColumn;
import org.eclipse.swt.widgets.TableItem;
import org.eclipse.swt.widgets.Text;
import com.laozizhu.search.EngineFactory;
import com.laozizhu.search.Factory;
import com.laozizhu.search.Item;
import com.laozizhu.search.SearchResult;
import com.laozizhu.search.Store;
import com.laozizhu.search.util.EngineUtil;

/**
 * 客戶端主程序。
 * 
 * @author 老紫竹(laozizhu.com)
 */
public class LzzSearch {
  Store store = (Store) Factory.getBean("LuceneStore");

  EngineFactory engineFactory = (EngineFactory) Factory.getBean("EngineFactory");

  private TabFolder tabFolder = null;

  Shell shell = null;

  Table table = null;

  StyledText resultShow = null;

  Text keyword = null;

  Text urlText = null;

  Text urlAddResult = null;

  public LzzSearch() {
    Display display = new Display();
    shell = new Shell(display);
    shell.setText("老紫竹精確搜索V1.01");
    shell.setImage(new Image(display, "LzzSearch.ico"));
    shell.setLayout(new GridLayout());
    tabFolder = new TabFolder(shell, SWT.BORDER);
    searchTab();
    addTab();
    GridData gd = new GridData(GridData.FILL_BOTH);
    tabFolder.setLayoutData(gd);
    shell.setMinimumSize(800, 600);
    shell.setSize(800, 600);
    shell.open();
    while (!shell.isDisposed()) {
      if (!display.readAndDispatch()) {// 等待直到結束
        display.sleep();
      }
    }
    display.dispose();
  }

  private void searchTab() {
    TabItem tabItem = new TabItem(tabFolder, SWT.NULL);
    tabItem.setText("搜索 ");
    Composite group = new Composite(tabFolder, SWT.NONE);
    GridLayout gl = new GridLayout();
    gl.numColumns = 3;
    group.setLayout(gl);
    tabItem.setControl(group);
    // 增加標簽
    Label inputLabel = new Label(group, SWT.NONE);
    inputLabel.setText("輸入關鍵詞");
    GridData gd = new GridData();
    inputLabel.setLayoutData(gd);
    // 增加輸入框
    keyword = new Text(group, SWT.BORDER | SWT.SHADOW_IN);
    gd = new GridData(GridData.FILL_HORIZONTAL);
    keyword.setLayoutData(gd);
    // 處理回車事件
    keyword.addTraverseListener(new TraverseListener() {
      public void keyTraversed(TraverseEvent e) {
        if (e.keyCode == 13) {
          // e.detail = SWT.TRAVERSE_TAB_NEXT;
          e.doit = true;
          doSearch();
        }
      }
    });
    // 搜索按鈕
    Button search = new Button(group, SWT.PUSH);
    search.setText("搜索");
    gd = new GridData();
    gd.widthHint = 100;
    search.setLayoutData(gd);
    // 處理按鈕事件
    search.addSelectionListener(new SelectionAdapter() {
      @Override
      public void widgetSelected(SelectionEvent e) {
        doSearch();
      }
    });
    // 增加搜索結果列表
    Group searchListGroup = new Group(group, SWT.NULL);
    gd = new GridData(GridData.FILL_HORIZONTAL);
    gd.horizontalSpan = 3;
    gd.heightHint = 150;
    searchListGroup.setLayoutData(gd);
    searchListGroup.setText("搜索結果");
    searchListGroup.setLayout(new GridLayout());
    gd = new GridData(GridData.FILL_BOTH);
    table = new Table(searchListGroup, SWT.BORDER | SWT.FULL_SELECTION);
    table.setLayoutData(gd);
    // 增加列
    TableColumn datetime = new TableColumn(table, SWT.LEFT);
    TableColumn title = new TableColumn(table, SWT.LEFT);
    TableColumn url = new TableColumn(table, SWT.LEFT);
    datetime.setText("日期");
    title.setText("標題");
    url.setText("來源地址");
    table.setHeaderVisible(true);
    datetime.setWidth(130);
    title.setWidth(400);
    url.setWidth(200);
    table.addSelectionListener(new SelectionAdapter() {
      @Override
      public void widgetSelected(SelectionEvent e) {
        TableItem ti = table.getSelection()[0];
        String url = ti.getText(2);
        Item item = store.searchByUrl(url);
        resultShow.setText(HTMLDecoder.decode(item.getBody()).replaceAll("<br\\s*/?>", "\r\n"));
      }
    });
    // 底部明細
    Group resultGroup = new Group(group, SWT.NULL);
    resultGroup.setText("查看明細");
    gd = new GridData(GridData.FILL_BOTH);
    gd.horizontalSpan = 3;
    gd.heightHint = 250;
    resultGroup.setLayoutData(gd);
    resultGroup.setLayout(new GridLayout());
    gd = new GridData(GridData.FILL_BOTH);
    resultShow = new StyledText(resultGroup, SWT.BORDER | SWT.SHADOW_OUT | SWT.V_SCROLL | SWT.WRAP);
    resultShow.setBackground(resultShow.getDisplay().getSystemColor(SWT.COLOR_WIDGET_BACKGROUND));
    resultShow.setForeground(new Color(resultShow.getDisplay(), 0, 0, 0));
    resultShow.setFont(new Font(resultShow.getDisplay(), "宋體", 12, SWT.NORMAL));
    resultShow.setLayoutData(gd);
    resultShow.setText("");
  }

  private void doSearch() {
    SearchResult sr = store.seach(keyword.getText(), 0, 10);
    List<Item> list = sr.getReturnList();
    table.removeAll();
    Iterator<Item> it = list.iterator();
    Item o;
    TableItem tableItem;
    while (it.hasNext()) {
      o = it.next();
      tableItem = new TableItem(table, SWT.NULL);
      tableItem.setText(new String[] { o.getDatetimeCreate(), o.getTitle(), o.getUrl() });
    }
  }

  private void doAddUrl() {
    String url = urlText.getText();
    if (url.trim().length() <= 20) {
      return;
    }
    boolean update = false;
    Item item = store.searchByUrl(url);
    if (item != null) {
      update = true;
    }
    // 獲得數據
    item = EngineUtil.get(url);
    String result;
    if (item == null || !item.isValid()) {
      result = (update ? "更新" : "加入") + "索引失敗,也許您輸入的網址尚未在支持的范圍內!";
    } else {
      // 加入索引
      if (store.save(item)) {
        result = (update ? "更新" : "加入") + "索引成功:\n\n標題:" + item.getTitle() + "\n作者:" + item.getAuthor() + "\n日期:"
            + item.getDatetimeCreate() + "\n內容:" + item.getBody();
      } else {
        result = (update ? "更新" : "加入") + "索引失敗";
      }
    }
    urlAddResult.setText(url + " " + result);
    // 清楚文本
    urlText.setText("");
  }

  private void addTab() {
    TabItem tabItem = new TabItem(tabFolder, SWT.NULL);
    tabItem.setText("增加 ");
    Composite group = new Composite(tabFolder, SWT.NONE);
    tabItem.setControl(group);
    GridLayout gl = new GridLayout();
    gl.numColumns = 3;
    group.setLayout(gl);
    // 增加標簽
    Label inputLabel = new Label(group, SWT.NONE);
    inputLabel.setText("輸入URL");
    GridData gd = new GridData();
    inputLabel.setLayoutData(gd);
    // 增加輸入框
    urlText = new Text(group, SWT.BORDER | SWT.SHADOW_IN);
    gd = new GridData(GridData.FILL_HORIZONTAL);
    urlText.setLayoutData(gd);
    // 處理回車事件
    urlText.addTraverseListener(new TraverseListener() {
      public void keyTraversed(TraverseEvent e) {
        if (e.keyCode == 13) {
          // e.detail = SWT.TRAVERSE_TAB_NEXT;
          e.doit = true;
          doAddUrl();
        }
      }
    });
    // 搜索按鈕
    Button addUrl = new Button(group, SWT.PUSH);
    addUrl.setText("加入");
    gd = new GridData();
    gd.widthHint = 100;
    addUrl.setLayoutData(gd);
    // 處理按鈕事件
    addUrl.addSelectionListener(new SelectionAdapter() {
      @Override
      public void widgetSelected(SelectionEvent e) {
        doAddUrl();
      }
    });
    gd = new GridData(GridData.FILL_BOTH);
    urlAddResult = new Text(group, SWT.BORDER | SWT.WRAP | SWT.V_SCROLL | SWT.READ_ONLY);
    gd.horizontalSpan = 3;
    urlAddResult.setLayoutData(gd);
  }

  public static void main(String[] args) {
    new LzzSearch();
  }
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲女性喷水在线观看一区| 国产精品美女视频| 欧美在线免费观看视频| 99久久精品国产毛片| 国产精品一二三| 精品影视av免费| 另类人妖一区二区av| 人人狠狠综合久久亚洲| 日韩高清不卡一区二区| 亚洲另类春色校园小说| 亚洲综合成人在线| 日韩理论片一区二区| 日本一区二区三区四区在线视频| 日韩精品影音先锋| 日韩片之四级片| 欧美一卡在线观看| 91精选在线观看| 欧美精品久久99久久在免费线| 色综合天天综合| aa级大片欧美| 色综合色综合色综合| av激情成人网| 91在线码无精品| 色婷婷精品久久二区二区蜜臀av| av动漫一区二区| 色综合久久中文综合久久97 | 97se亚洲国产综合自在线观| 久久精品国产99久久6| 日本中文字幕一区| 久久精品国产免费看久久精品| 日本不卡123| 男男视频亚洲欧美| 国产在线日韩欧美| 99久久精品免费看国产免费软件| 成人h动漫精品一区二| 91福利资源站| 91麻豆精品国产91久久久使用方法 | 精品免费一区二区三区| 欧美成人精品1314www| 日韩精品一区二区三区在线| 宅男噜噜噜66一区二区66| 欧美狂野另类xxxxoooo| 欧美日本一区二区三区四区 | 免费三级欧美电影| 国产精品一级片| 欧洲色大大久久| 色综合久久久网| 欧美裸体一区二区三区| 欧美刺激脚交jootjob| 精品少妇一区二区三区视频免付费 | 日韩一区二区在线播放| 综合激情成人伊人| 欧美亚洲综合一区| 亚洲综合色成人| 欧美日韩不卡一区| 日本视频在线一区| 久久久久一区二区三区四区| 国产一区二区精品久久91| 精品成人一区二区三区四区| 激情文学综合丁香| 久久品道一品道久久精品| 狠狠色狠狠色合久久伊人| 欧美视频一区二区三区在线观看| 亚洲一二三区视频在线观看| 91视频观看视频| 中文字幕一区在线观看视频| 风流少妇一区二区| 国产欧美日韩在线看| av电影在线不卡| 亚洲色图视频网| 在线国产亚洲欧美| 日韩专区中文字幕一区二区| 日韩视频免费观看高清完整版在线观看| 首页亚洲欧美制服丝腿| 精品国产伦一区二区三区免费| 国产风韵犹存在线视精品| 亚洲视频在线一区观看| 在线观看成人免费视频| 美腿丝袜在线亚洲一区| 久久综合丝袜日本网| 97精品国产97久久久久久久久久久久| 一区二区高清视频在线观看| 7777精品伊人久久久大香线蕉的| 国内精品视频666| 亚洲丝袜另类动漫二区| 欧美一区二区三区视频免费| 成人一道本在线| 亚洲综合在线免费观看| 欧美sm极限捆绑bd| 国产美女精品一区二区三区| 伊人色综合久久天天| 精品少妇一区二区三区在线视频| hitomi一区二区三区精品| 午夜精品福利视频网站| 久久亚洲精华国产精华液| 欧美久久久久久蜜桃| 成人午夜视频福利| 五月天亚洲精品| 中文字幕在线不卡一区二区三区| 777色狠狠一区二区三区| www.一区二区| 麻豆久久久久久久| 一区二区三区高清在线| 久久综合一区二区| 欧美理论片在线| 日韩视频免费直播| 91免费小视频| 国产精品影音先锋| 免费看日韩a级影片| 亚洲欧美日韩人成在线播放| 欧美日韩另类一区| 成人一级片网址| 午夜精品久久久久久久| 日韩精品一区二区三区视频在线观看| 欧美在线观看18| 成人爽a毛片一区二区免费| 中文字幕日本不卡| 欧美蜜桃一区二区三区| 91日韩一区二区三区| 国产91丝袜在线观看| 韩国午夜理伦三级不卡影院| 亚洲18女电影在线观看| 综合久久综合久久| 国产精品成人一区二区艾草 | 天天av天天翘天天综合网 | 国产精品传媒视频| 国产欧美日韩视频在线观看| 久久一留热品黄| 日韩无一区二区| 欧美日韩激情一区| 欧美视频在线一区| 欧美体内she精视频| 在线观看一区二区视频| 欧美伊人精品成人久久综合97| 色婷婷激情久久| 在线视频一区二区免费| 色一情一伦一子一伦一区| 不卡一区二区三区四区| 成人丝袜视频网| av在线一区二区三区| 国产乱码精品一区二区三区av | 亚洲欧美区自拍先锋| 亚洲久草在线视频| 一区二区三区国产精华| 亚洲一区二区在线播放相泽| 亚洲香肠在线观看| 日本成人中文字幕在线视频| 欧美a级理论片| 捆绑紧缚一区二区三区视频| 久久99精品国产麻豆不卡| 国内精品写真在线观看| 国产精品99久久久久久似苏梦涵 | 国产成人免费xxxxxxxx| www.亚洲在线| 欧美三级视频在线| 日韩视频123| 国产精品免费看片| 亚洲国产精品视频| 久久福利视频一区二区| 国产精品99久久不卡二区| 99国产一区二区三精品乱码| 91国偷自产一区二区开放时间| 精品视频资源站| 亚洲精品一线二线三线无人区| 国产日韩影视精品| 亚洲一二三区在线观看| 亚洲福利一二三区| 蜜臀久久99精品久久久久宅男| 99精品一区二区三区| 99久久精品费精品国产一区二区| 欧美日本乱大交xxxxx| 久久精品亚洲麻豆av一区二区 | 国产精品不卡在线| 亚洲色大成网站www久久九九| 日本成人在线网站| 成年人午夜久久久| 欧美另类高清zo欧美| 中日韩免费视频中文字幕| 亚洲国产成人av| 国产成人三级在线观看| 在线观看免费成人| 久久男人中文字幕资源站| 亚洲人成网站影音先锋播放| 极品少妇xxxx精品少妇| 在线观看国产一区二区| 欧美激情一二三区| 日本欧美久久久久免费播放网| 丁香婷婷综合激情五月色| 欧美卡1卡2卡| 一区二区三区欧美日韩| 国产精品原创巨作av| 欧美日韩成人在线| 亚洲欧洲99久久| 国产成a人亚洲精| 日韩一区二区三区电影| 久久精品免费在线观看| 首页国产丝袜综合| 欧美图区在线视频| 亚洲欧美乱综合| 成人免费看片app下载|