<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    hengheng123456789

      BlogJava :: 首頁 :: 聯系 :: 聚合  :: 管理
      297 Posts :: 68 Stories :: 144 Comments :: 0 Trackbacks
    1、使用Shell的Tool Tips 實現圖像內的Tool Tips
    ?public static void main (String [] args) {
    ??Display display = new Display ();
    ??final Color [] colors = {
    ???display.getSystemColor (SWT.COLOR_RED),
    ???display.getSystemColor (SWT.COLOR_GREEN),
    ???display.getSystemColor (SWT.COLOR_BLUE),
    ??};
    ??final Rectangle [] rects = {
    ???new Rectangle (10, 10, 30, 30),
    ???new Rectangle (20, 45, 25, 35),
    ???new Rectangle (80, 80, 10, 10),
    ??};
    ??final Shell shell = new Shell (display);
    ??Listener mouseListener = new Listener () {
    ???public void handleEvent (Event event) {
    ????switch (event.type) {
    ?????case SWT.MouseEnter:
    ?????case SWT.MouseMove:
    ??????for (int i=0; i<rects.length; i++) {
    ???????if (rects [i].contains (event.x, event.y)) {
    ????????String text = "ToolTip " + i;
    ????????if (!(text.equals (shell.getToolTipText ()))) {
    ?????????shell.setToolTipText ("ToolTip " + i);
    ????????}
    ????????return;
    ???????}
    ??????}
    ??????shell.setToolTipText (null);
    ??????break;
    ?????}
    ???}
    ??};
    ??shell.addListener (SWT.MouseMove, mouseListener);
    ??shell.addListener (SWT.MouseEnter, mouseListener);
    ??shell.addListener (SWT.Paint, new Listener () {
    ???public void handleEvent (Event event) {
    ????GC gc = event.gc;
    ????for (int i=0; i<rects.length; i++) {
    ?????gc.setBackground (colors [i]);
    ?????gc.fillRectangle (rects [i]);
    ?????gc.drawRectangle (rects [i]);
    ????}
    ???}
    ??});
    ??shell.setSize (200, 200);
    ??shell.open ();
    ??while (!shell.isDisposed ()) {
    ???if (!display.readAndDispatch ()) display.sleep ();
    ??}
    ??display.dispose ();
    ?}

    2、使用Shell實現Tool Tip的功能。
    ?public static void main (String[] args) {
    ??final Display display = new Display ();
    ??final Shell shell = new Shell (display);
    ??shell.setLayout (new FillLayout ());
    ??final Table table = new Table (shell, SWT.BORDER);
    ??for (int i = 0; i < 20; i++) {
    ???TableItem item = new TableItem (table, SWT.NONE);
    ???item.setText ("item " + i);
    ??}
    ??// Disable native tooltip
    ??table.setToolTipText ("");
    ??
    ??// Implement a "fake" tooltip
    ??final Listener labelListener = new Listener () {
    ???public void handleEvent (Event event) {
    ????Label label = (Label)event.widget;
    ????Shell shell = label.getShell ();
    ????switch (event.type) {
    ?????case SWT.MouseDown:
    ??????Event e = new Event ();
    ??????e.item = (TableItem) label.getData ("_TABLEITEM");
    ??????// Assuming table is single select, set the selection as if
    ??????// the mouse down event went through to the table
    ??????table.setSelection (new TableItem [] {(TableItem) e.item});
    ??????table.notifyListeners (SWT.Selection, e);
    ??????shell.dispose ();
    ??????table.setFocus();
    ??????break;
    ?????case SWT.MouseExit:
    ??????shell.dispose ();
    ??????break;
    ????}
    ???}
    ??};
    ??
    ??Listener tableListener = new Listener () {
    ???Shell tip = null;
    ???Label label = null;
    ???public void handleEvent (Event event) {
    ????switch (event.type) {
    ?????case SWT.Dispose:
    ?????case SWT.KeyDown:
    ?????case SWT.MouseMove: {
    ??????if (tip == null) break;
    ??????tip.dispose ();
    ??????tip = null;
    ??????label = null;
    ??????break;
    ?????}
    ?????case SWT.MouseHover: {
    ??????TableItem item = table.getItem (new Point (event.x, event.y));
    ??????if (item != null) {
    ???????if (tip != null? && !tip.isDisposed ()) tip.dispose ();
    ???????//使用Shell實現Tool Tip的功能
    ???????tip = new Shell (shell, SWT.ON_TOP | SWT.NO_FOCUS | SWT.TOOL);
    ???????tip.setBackground (display.getSystemColor (SWT.COLOR_INFO_BACKGROUND));
    ???????FillLayout layout = new FillLayout ();
    ???????layout.marginWidth = 2;
    ???????tip.setLayout (layout);
    ???????label = new Label (tip, SWT.NONE);
    ???????label.setForeground (display.getSystemColor (SWT.COLOR_INFO_FOREGROUND));
    ???????label.setBackground (display.getSystemColor (SWT.COLOR_INFO_BACKGROUND));
    ???????label.setData ("_TABLEITEM", item);
    ???????label.setText (item.getText ());
    ???????label.addListener (SWT.MouseExit, labelListener);
    ???????label.addListener (SWT.MouseDown, labelListener);
    ???????Point size = tip.computeSize (SWT.DEFAULT, SWT.DEFAULT);
    ???????Rectangle rect = item.getBounds (0);
    ???????Point pt = table.toDisplay (rect.x, rect.y);
    ???????tip.setBounds (pt.x, pt.y, size.x, size.y);
    ???????tip.setVisible (true);
    ??????}
    ?????}
    ????}
    ???}
    ??};
    ??table.addListener (SWT.Dispose, tableListener);
    ??table.addListener (SWT.KeyDown, tableListener);
    ??table.addListener (SWT.MouseMove, tableListener);
    ??table.addListener (SWT.MouseHover, tableListener);
    ??shell.pack ();
    ??shell.open();
    ??while (!shell.isDisposed()) {
    ???if (!display.readAndDispatch())
    ????display.sleep();
    ??}
    ??display.dispose();
    ?}
    posted on 2006-11-07 17:39 哼哼 閱讀(1327) 評論(0)  編輯  收藏 所屬分類: SWT
    主站蜘蛛池模板: 亚欧洲精品在线视频免费观看| a毛片基地免费全部视频| 免费播放在线日本感人片| 97国产在线公开免费观看| 黑人精品videos亚洲人| 色偷偷女男人的天堂亚洲网| 鲁啊鲁在线视频免费播放| 国产精品无码一二区免费| 亚洲国产欧美国产综合一区| 成年性午夜免费视频网站不卡| 久久久久亚洲av毛片大| 一级毛片在播放免费| 思思re热免费精品视频66| 亚洲不卡中文字幕| 久久WWW色情成人免费观看| 亚洲综合在线一区二区三区| 免费高清资源黄网站在线观看 | 特级做a爰片毛片免费看| 免费人成年激情视频在线观看| 亚洲成AV人片久久| 最近的2019免费中文字幕| 亚洲AV日韩AV天堂久久 | 相泽亚洲一区中文字幕| 丁香花在线观看免费观看图片 | 国产免费女女脚奴视频网| 久久亚洲AV无码西西人体| 久久免费美女视频| 亚洲av成人一区二区三区| 日韩一级免费视频| 中国一级特黄的片子免费| 四虎永久在线免费观看| 久久九九免费高清视频| 亚洲精品电影天堂网| 天天摸天天碰成人免费视频| 亚洲国产精品一区二区久| 免费无码精品黄AV电影| 亚洲男人的天堂在线播放| 国产在线精品观看免费观看| 91亚洲导航深夜福利| 免费观看亚洲人成网站| 免费播放在线日本感人片|