Tooltip + F2
程序员文章站
2022-03-16 15:15:02
...
在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();
希望对大家有帮助.
推荐阅读
-
jQuery探测位置的提示弹窗(toolTip box)详细解析
-
时隔一年多 小米POCO系列来了:新机F2 Lite曝光
-
小米预告片暗示新机即将登场:POCO F2来袭
-
小米POCO F2屏幕保护膜曝光 水滴屏设计/旗舰级配置
-
不止Redmi K30 Pro 小米POCO F2已在路上:865/高性价比
-
AngularJs的UI组件ui-Bootstrap之Tooltip和Popover
-
VUE2.0+ElementUI2.0表格el-table实现表头扩展el-tooltip
-
小米POCO F2确认:高性价比 非Redmi K30 Pro
-
小米POCO F2曝光:弹出式真全面屏加持 还有骁龙865
-
电脑开机提示按f2的解决方法(Press F2 to continue,DEL to enter SETUP)[图文]