Swing鼠标悬停时巧用上下文菜单显示提示信息
来源:互联网 发布:广西电子政务云计算 编辑:程序博客网 时间:2024/06/06 10:44
Swing的大多数控件都已经实现了setToolTip接口,当鼠标悬停时会显示设置好的提示信息。但是当需要精确地显示复杂的提示信息时就力不从心。本文就介绍利用上下文菜单来显示复杂的提示信息。
首先需要解决在鼠标悬停时在何地显示提示信息的问题,这可以通过为控件添加MouseMotionListener来实现。通过MouseEvent的Point可以知道当前鼠标悬停的精确地点,再判断相对于控件的位置,从而得出是否需要显示提示信息。
其次当需要显示提示信息时,需要运用上下文菜单在相对控件的特定位置显示提示信息。 上下文菜单也是一个面板,可以设置布局管理器和添加控件,把所有的提示信息封装到一个JPanel里面,然后把该panel添加到菜单里面即可(BorderLayout居中)。具体代码如下。
table.addMouseMotionListener(new MouseMotionListener() {@Overridepublic void mouseMoved(MouseEvent e) {Point point = e.getPoint();int rowIndex = table.rowAtPoint(point);if (rowIndex > 0) {JPopupMenu popup = new JPopupMenu();popup.setLayout(new BorderLayout());JPanel infoPanel = createtInfoPanel();popup.add(infoPanel, BorderLayout.CENTER);popup.show(table, (int)point.getX(), (int)point.getY());}}@Overridepublic void mouseDragged(MouseEvent e) {}});
private JPanel createtInfoPanel() {JPanel infoPanel = new JPanel();MigLayout layout = new MigLayout("", "[grow,fill]", "20[pref!]20");infoPanel.setLayout(layout);infoPanel.add(new JLabel("Cool Thing"));return infoPanel;}
- Swing鼠标悬停时巧用上下文菜单显示提示信息
- Swing鼠标悬停时巧用上下文菜单显示提示信息
- jQuery鼠标悬停显示提示信息窗口
- jquery特效--鼠标悬停显示提示信息
- jQuery鼠标悬停显示提示信息窗口
- jquery 鼠标悬停显示信息提示框
- 鼠标悬停信息提示
- ToolTip插件,鼠标悬停时显示信息
- Dojo 鼠标悬停提示信息
- flash鼠标悬停信息提示
- Eclipse关闭鼠标悬停时 函数信息提示
- 打开android studio鼠标悬停提示信息
- JS特效:鼠标悬停显示提示
- 鼠标悬停下拉菜单
- 鼠标悬停显示提示语句,使用title属性即可显示
- 鼠标在菜单上移动时显示菜单提示
- Treeview 鼠标悬停时的问题提示
- Treeview 鼠标悬停时的问题提示
- Android Tabhost使用(展示不同的Tab页)
- 使用线程池例子
- make menuconfig/.config/Kconfig解析
- 表格内容滚动
- 判断字节序
- Swing鼠标悬停时巧用上下文菜单显示提示信息
- SQL批量数据导入,性能测试
- 实习
- 批量修改文件名方法
- Android 4.0 Service Framework
- ubuntu exfat
- QDialog的show方式和exec方式
- 简单的、智能搜索源文件的 Makefile
- Java向Excel文件中写数据