<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
    主站蜘蛛池模板: 亚洲福利在线播放| 亚洲gv猛男gv无码男同短文| 一个人免费视频在线观看www| 国产成人精品日本亚洲网址| 精品亚洲永久免费精品| 国产免费av片在线播放| 97免费人妻无码视频| 亚洲免费观看视频| 一级做性色a爰片久久毛片免费| 亚洲男人的天堂久久精品| 亚洲国产天堂在线观看| 亚洲伊人久久综合影院| 国产在线19禁免费观看国产 | 亚洲免费黄色网址| 亚洲中文久久精品无码ww16| 狠狠久久永久免费观看| 国产免费不卡v片在线观看| 久久综合给合久久国产免费| 国产美女无遮挡免费网站| 亚洲国产成人AV网站| 亚洲精品午夜国产va久久| 亚洲小说区图片区| 亚洲欧洲一区二区| 亚洲成色www久久网站夜月| 在线播放亚洲第一字幕| 亚洲一级Av无码毛片久久精品| 全部免费毛片免费播放| 国产麻豆免费观看91| 国产精品国产免费无码专区不卡| 97免费人妻无码视频| 2015日韩永久免费视频播放| 一区二区三区福利视频免费观看| 精品一区二区三区免费| 久久久久国产精品免费免费不卡| 免费久久人人爽人人爽av| 中文字幕久精品免费视频| 免费视频成人手机在线观看网址| 两个人看的www高清免费观看| 免费网站观看WWW在线观看| a级毛片免费在线观看| 久久精品免费视频观看|