Tooltip + F2

xiaoxiao2026-09-22  2

        在ECLIPSE中开发JAVA程序,当我们打开一个JAVA类时,ECLIPSE会打开一个JDT的JAVA EDITOR来显示这个类.当把鼠标移到某一个JAVA类型时,会出现一个tooltip的提示信息.这时我们可以按F2来把焦点设定在这个提示信息窗口上,这样就不会因为一移动鼠标这个提示窗口就消失了.                  tooltip大家都会加,但怎么把F2这个功能也加上去呢?         其实很容易,下面我用简单的代码介绍一下:         比如说我们要在Table上加上tooltip,当鼠标移到某一行时,显示该行的提示信息.         我们可以这么做:

TableViewer viewer Table table = viewer.getTable(); TooltipListener tooltipListener = new TooltipListener(viewer); table.addListener(SWT.KeyDown,tooltipListener); table.addListener(SWT.MouseHover,tooltipListener);

  这里的TooltipListener类就是一个监听器,来监听系统的两个事件:一个是键盘敲下,一个是鼠标停留.

private class TooltipListener implements Listener { private Shell tipshell; private Text msg; private TableViewer viewer; private Shell shell; private Display display; public TooltipListener(TableViewer viewer) { this.viewer = viewer; shell = this.viewer .getControl().getShell(); display = shell.getDisplay(); } public void handleEvent(Event event) { if(event.type == SWT.KeyDown){ if(event.keyCode == SWT.F2){ tipshell.forceFocus(); tooltiptext.setFacus(); } }else if(event.type == SWT.MouseHover){ TableItem item = viewer.getTable().getItem(new Point(event.x, event.y)); tipShell = new Shell(shell, SWT.ON_TOP | SWT.TOOL); tipShell.setLayout(new FillLayout()); msg = new Text(tipShell, SWT.WRAP); msg.setForeground(display.getSystemColor(SWT.COLOR_INFO_FOREGROUND)); msg.setBackground(display.getSystemColor(SWT.COLOR_INFO_BACKGROUND)); msg.setText("hello!nihao"); tipShell.setVisible(true); } } break; } }

 当鼠标停留,这个监听器监听到了停留事件就打开一个tooltip:hello!nihao 这时如果按下F2,这个监听器就监听到,马上把鼠标焦点定位到tooltip上.        ^_^,就这么简单!其实就是两个语句:tipshell.forceFocus();tooltiptext.setFacus();        希望对大家有帮助.

转载请注明原文地址: https://www.6miu.com/read-5052917.html

最新回复(0)