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

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

?? xlist.java

?? 使用網路電話雖然方便
?? JAVA
?? 第 1 頁 / 共 3 頁
字號:
package at.ac.uni_linz.tk.vchat;

import java.awt.*;
import java.awt.event.*;
import java.util.*;
import java.text.*;


/************************************************************************
 * A XList offers a list with extended functionality, such as
 * changing columns' width dynamically, formating text, forcing
 * line breaks, etc.
 *
 * @author      Arno Huetter
 * (C)opyright by the Institute for Computer Science, Telecooperation Department, University of Linz
 ************************************************************************/

public class XList extends Panel implements MouseListener, MouseMotionListener, KeyListener, AdjustmentListener {

  private static final int VERTICAL_CELL_SPACING = 2;
  private static final int HORIZONTAL_CELL_SPACING = 4;
  private static final int MINIMUM_COLUMNWIDTH = 30;
  private static final int MINIMUM_VISIBLELINES = 4;

  public static final int LEFT = 0;
  public static final int RIGHT = 1;
  public static final int FLOW = 2;

  private static final int SCROLLBAR_WIDTH = 16;

  private Vector vecContent[], vecKey, vecColor;
  private Scrollbar scbBar;
  private int iNrOfColumns, iSelectedRow, iNrOfLines, iFirstVisibleLine, iNrOfVisibleLines,  iColumnDraggedX, iColumnSeparator, iSortCriteria;
  private Font fntFont;
  private int iColumnWidth[], iColumnOrientation[], iNrOfLinesPerRow[], iNrOfLinesUntilRow[];
  private String strColumnHeader[];
  private boolean bSelectable, bSorted;

  private Image imgBuffer;


 /************************************************************************
  * Creates a new XList.
  * @param iNrOfColumnsParam           the number of columns
  ************************************************************************/

  public XList(int iNrOfColumnsParam) {
    fntFont = ChatRepository.FIXED_FONT;
    iNrOfColumns = Math.max(iNrOfColumnsParam, 1);
    iNrOfVisibleLines = MINIMUM_VISIBLELINES;

    iFirstVisibleLine = 0;
    bSelectable = true;
    bSorted = false;
    iSortCriteria = 0;
    iSelectedRow = 0;

    vecContent = new Vector[iNrOfColumns];
    vecKey = new Vector();
    vecColor = new Vector();
    strColumnHeader = new String[iNrOfColumns];
    iColumnOrientation = new int[iNrOfColumns];
    iColumnWidth = new int[iNrOfColumns];
    for (int i = 0; i < iNrOfColumns; i++) {
      vecContent[i] = new Vector();
      strColumnHeader[i] = "";
      iColumnOrientation[i] = FLOW;
    }

    scbBar = new Scrollbar(Scrollbar.VERTICAL, 0, 0, 0, 0);
    setLayout(new BorderLayout());
    add("East", scbBar);

    addMouseListener(this);
    addMouseMotionListener(this);
    addKeyListener(this);
    scbBar.addAdjustmentListener(this);

    setSize(getCalculatedSize());
  }


  /************************************************************************
   * Sets the header for each column.
   * @param strColumnHeaderParam      an array of Strings which contains
   *                                  the headers
   ************************************************************************/

  public void setColumnHeaders(String strColumnHeaderParam[]) {
    if (strColumnHeaderParam.length == iNrOfColumns) {
      strColumnHeader = strColumnHeaderParam;
    }
    repaint();
  }


  /************************************************************************
   * Sets the width for each column.
   * @param iColumnWidthParam      an array of integers which contains
   *                               the widths
   ************************************************************************/

  public void setColumnWidths(int iColumnWidthParam[]) {
    if (iColumnWidthParam.length == iNrOfColumns) {
      iColumnWidth = iColumnWidthParam;
    }
    setSize(getCalculatedSize());
  }


  /************************************************************************
   * Sets the orientation for each column.
   * @param iColumnOrientationParam      an array of integers which
   *                                     contains the orientations (must be
   *                                     XList.LEFT, XList.RIGHT or
   *                                     XList.FLOW)
   ************************************************************************/

  public void setColumnOrientations(int iColumnOrientationParam[]) {
    if (iColumnOrientationParam.length == iNrOfColumns) {
      iColumnOrientation = iColumnOrientationParam;
    }
    repaint();
  }


  /************************************************************************
   * Clears the XList.
   ************************************************************************/

  public synchronized void clear() {
    for (int i = 0; i < iNrOfColumns; i++) {
      vecContent[i] = new Vector();
    }
    vecKey = new Vector();
    vecColor = new Vector();
    iNrOfLines = 0;
    iFirstVisibleLine = 0;
    iSelectedRow = 0;
    repaint();
  }


  /************************************************************************
   * Sets the text for a certain cell.
   * @param iRowParam            the index of the cell's row
   * @param iColumnParam         the index of the cell's column
   * @param strContentParam      the new cell text
   ************************************************************************/

  public synchronized void setCellText(int iRowParam, int iColumnParam, String strContentParam) {
    if (iRowParam < getNrOfRows() && iColumnParam < iNrOfColumns) {
      vecContent[iColumnParam].removeElementAt(iRowParam);
      vecContent[iColumnParam].insertElementAt(strContentParam, iRowParam);
      repaint();
    }
  }


  /************************************************************************
   * Returns the text of a certain cell.
   * @param iRowParam            the index of the cell's row
   * @param iColumnParam         the index of the cell's column
   ************************************************************************/

  public synchronized String getCellText(int iRowParam, int iColumnParam) {
    if (iRowParam < getNrOfRows() && iColumnParam < iNrOfColumns) {
      return (String)vecContent[iColumnParam].elementAt(iRowParam);
    }
    else {
      return "";
    }
  }


  /************************************************************************
   * Sets the text Color for a certain row.
   * @param iRowParam      the index of the cell's row
   * @param colParam       the Color to be used
   ************************************************************************/

  public synchronized void setRowColor(int iRowParam, Color colParam) {
    if (iRowParam < getNrOfRows()) {
      vecColor.setElementAt(colParam, iRowParam);
      repaint();
    }
  }


  /************************************************************************
   * Adds a row at the bottom of the XList.
   * @param strRowParam      an array of Strings which contains each cell's
   *                         text
   ************************************************************************/

  public synchronized void addRow(String strRowParam[]) {
    addRow(strRowParam, -1, Color.black);
  }


  /************************************************************************
   * Adds a row at the bottom of the XList.
   * @param strRowParam      an array of Strings which contains each cell's
   *                         text
   * @param iKeyParam        an int value working as an index key for the
   *                         row
   * @param colParam         the text Color of the row
   ************************************************************************/

  public synchronized void addRow(String strRowParam[], int iKeyParam, Color colParam) {
    if (strRowParam.length == iNrOfColumns) {
      if (bSorted) {
        addSortedRow(strRowParam, iKeyParam, colParam);
      }
      else {
        for (int i = 0; i < iNrOfColumns; i++) {
          vecContent[i].addElement(strRowParam[i]);
        }
        vecKey.addElement(new Integer(iKeyParam));
        vecColor.addElement(colParam);
      }
      repaint();
    }
  }


  /************************************************************************
   * Adds a row at its sorted index.
   * @param strRowParam      an array of Strings which contains each cell's
   *                         text
   * @param iKeyParam        an int value working as an index key for the
   *                         row
   * @param colParam         the text Color of the row
   ************************************************************************/

  private synchronized void addSortedRow(String strRowParam[], int iKeyParam, Color colParam) {
    int iIndex;
    iIndex = getSortedRowIndex(strRowParam[iSortCriteria]);

    for (int i = 0; i < iNrOfColumns; i++) {
      vecContent[i].insertElementAt(strRowParam[i], iIndex);
    }
    vecKey.insertElementAt(new Integer(iKeyParam), iIndex);
    vecColor.insertElementAt(colParam, iIndex);
    repaint();
  }


  /************************************************************************
   * Returns the row-index of a certain text depending on the XList's
   * sorting criteria.
   * @param strParam      the text to be indexed
   ************************************************************************/

  private synchronized int getSortedRowIndex(String strParam) {
    Collator collator;
    collator = Collator.getInstance();
    for (int i = 0; i < getNrOfRows(); i++) {
      if (collator.compare((String)vecContent[iSortCriteria].elementAt(i), strParam) > 0) {
        return i;
      }
    }
    return getNrOfRows();
  }


  /************************************************************************
   * Returns the key value of a certain row.
   * @param iRowParam      the index of the row
   ************************************************************************/

  public synchronized int getKey(int iRowParam) {
    return ((Integer)vecKey.elementAt(iRowParam)).intValue();
  }


  /************************************************************************
   * Returns the number of rows.
   ************************************************************************/

  public synchronized int getNrOfRows() {
    return vecContent[0].size();
  }


  /************************************************************************
   * Returns the index of the currently selected row. Will be -1 in case
   * the XList is marked as being unselectable.
   ************************************************************************/

  public synchronized int getSelectedRow() {
    return iSelectedRow;
  }


  /************************************************************************
   * Determines wheter items of the BXList can be selected or not.
   *
   * @param bSelectableParam      true if items should be selectable, false
   *                              if not
   ************************************************************************/

  public void setSelectable(boolean bSelectableParam) {
    bSelectable = bSelectableParam;
    repaint();
  }


  /************************************************************************
   * Determines wheter the XList should be sorted or not.
   *
   * @param bSortedParam      true if the XList should be sorted, false if
   *                          not
   ************************************************************************/

  public void setSorted(boolean bSortedParam) {
    bSorted = bSortedParam;
  }


  /************************************************************************
   * Returns the BXList's preferred size.
   ************************************************************************/

  public Dimension getPreferredSize() {
    return getCalculatedSize();
  }


  /************************************************************************
   * Returns the BXList's minimum size.
   ************************************************************************/

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲国产精品综合小说图片区| 国产一区三区三区| 国产精品亚洲а∨天堂免在线| 91黄视频在线| 久久综合精品国产一区二区三区| 亚洲欧美电影院| 国产不卡在线一区| 精品国产乱码久久久久久老虎| 亚洲成a人v欧美综合天堂下载| 国产白丝精品91爽爽久久| 欧美一区二区在线观看| 亚洲成国产人片在线观看| 一本在线高清不卡dvd| 国产欧美综合在线观看第十页| 免费在线看成人av| 在线成人午夜影院| 日日摸夜夜添夜夜添精品视频| 色综合一个色综合| 一色桃子久久精品亚洲| yourporn久久国产精品| 欧美激情一区二区在线| 国产剧情一区二区三区| 久久先锋影音av| 国精产品一区一区三区mba桃花| 日韩视频在线永久播放| 日韩成人一级片| 91精品国产综合久久福利| 天天色天天爱天天射综合| 欧美日韩成人综合天天影院| 综合电影一区二区三区| a美女胸又www黄视频久久| 国产亚洲精品超碰| 9久草视频在线视频精品| 国产精品人人做人人爽人人添| 福利电影一区二区三区| 中文字幕精品一区二区三区精品| 成人理论电影网| 一区二区三区av电影| av影院午夜一区| 亚洲精品v日韩精品| 91麻豆精东视频| 五月综合激情网| 欧美成人三级在线| 成人免费视频网站在线观看| 亚洲欧美国产77777| 欧美性色aⅴ视频一区日韩精品| 偷拍日韩校园综合在线| 精品美女一区二区| 成人毛片视频在线观看| 亚洲成av人片一区二区三区 | 国产三级久久久| 成人丝袜视频网| 亚洲第一二三四区| 精品欧美乱码久久久久久1区2区| 岛国av在线一区| 又紧又大又爽精品一区二区| 7777女厕盗摄久久久| 国产综合色产在线精品| 一区二区视频在线看| 7799精品视频| 国v精品久久久网| 亚洲韩国精品一区| 国产三级精品在线| 精品视频一区二区三区免费| 精品无人码麻豆乱码1区2区 | 在线视频国内一区二区| 免费在线观看一区二区三区| 国产精品午夜免费| 91麻豆精品国产91| 福利一区在线观看| 蜜臀av国产精品久久久久| 综合在线观看色| 日韩精品一区二区三区视频| 91在线观看免费视频| 亚洲日韩欧美一区二区在线| 欧美日韩视频专区在线播放| 国产乱子轮精品视频| 亚洲小少妇裸体bbw| 久久久九九九九| 欧美美女喷水视频| 成人国产精品免费| 六月婷婷色综合| 亚洲123区在线观看| 国产精品每日更新在线播放网址| 欧美一区在线视频| 91免费国产在线观看| 国产精品资源网站| 蜜桃视频免费观看一区| 亚洲激情av在线| 欧美高清在线精品一区| 精品人伦一区二区色婷婷| 欧美日韩国产区一| 在线观看国产精品网站| 99久久久久久| 粗大黑人巨茎大战欧美成人| 国精产品一区一区三区mba视频| 三级成人在线视频| 日韩主播视频在线| 亚洲18色成人| 午夜欧美电影在线观看| 亚洲一区二区精品视频| 亚洲精品免费在线| 亚洲乱码国产乱码精品精的特点| 国产欧美综合在线| 中文字幕免费不卡在线| 国产精品毛片高清在线完整版 | 欧美一区二区三区成人| 欧美日韩一区三区| 欧美自拍偷拍一区| 欧美在线啊v一区| 在线免费av一区| 在线精品视频一区二区| 在线观看日韩电影| 欧美在线观看视频在线| 欧美日韩高清一区二区三区| 欧美精品丝袜中出| 日韩一区二区三| 精品日韩一区二区三区| 国产亚洲制服色| 国产精品久久久久久妇女6080| 中文字幕视频一区二区三区久| 中文字幕第一区综合| 中文字幕一区二区三区色视频| 亚洲色图.com| 亚洲一区二三区| 婷婷国产在线综合| 国产真实乱对白精彩久久| 国产麻豆精品在线| 99精品黄色片免费大全| 欧美视频一区二区三区在线观看 | 国产精品自在在线| 成人黄动漫网站免费app| 91麻豆福利精品推荐| 欧美日韩精品专区| 日韩精品在线看片z| 国产精品久久久久一区二区三区| 有码一区二区三区| 久久电影国产免费久久电影| 国产大片一区二区| 欧美无人高清视频在线观看| 欧美一卡在线观看| 中文字幕成人av| 亚洲成人av资源| 国产成人在线观看免费网站| 色999日韩国产欧美一区二区| 欧美乱妇15p| 欧美国产激情一区二区三区蜜月| 亚洲图片欧美视频| 国产麻豆精品95视频| 欧美色偷偷大香| 国产香蕉久久精品综合网| 亚洲午夜国产一区99re久久| 国产精品自在欧美一区| 在线视频国内一区二区| 久久精品夜夜夜夜久久| 亚洲国产日韩一级| 成人午夜激情片| 日韩欧美国产综合在线一区二区三区| 中文字幕欧美区| 精品一区二区影视| 欧美性感一区二区三区| 欧美国产97人人爽人人喊| 免播放器亚洲一区| 在线观看不卡一区| 日本一区二区成人| 激情图区综合网| 欧美日韩亚洲综合在线| 中文在线免费一区三区高中清不卡| 五月天精品一区二区三区| 一本久久a久久精品亚洲| 国产婷婷色一区二区三区四区| 日韩av中文字幕一区二区三区| av高清不卡在线| 国产婷婷一区二区| 精品一区二区国语对白| 欧美精品v国产精品v日韩精品| 中文字幕一区二区三中文字幕| 国产原创一区二区三区| 欧美一区二区三区不卡| 性做久久久久久免费观看| 一本色道**综合亚洲精品蜜桃冫| 欧美国产1区2区| 国产精品一区免费在线观看| 精品国产一区二区亚洲人成毛片 | 亚洲一区在线观看免费观看电影高清 | 一区在线播放视频| 岛国精品在线播放| 日本一区二区三区在线不卡| 国精产品一区一区三区mba桃花| 日韩欧美中文字幕公布| 琪琪久久久久日韩精品| 337p亚洲精品色噜噜噜| 日韩福利电影在线观看| 91超碰这里只有精品国产| 午夜欧美视频在线观看| 欧美精品 日韩| 久久精品999| 久久午夜国产精品| 国产99一区视频免费 | av中文字幕不卡|