在我的JDesktopPane上放置了4个JInternalFrame,每个JInternalFrame里面都有一些JTable等组件
这些小界面需要实现鼠标事件,移动\进入等,来显示不同的tooltip或颜色但现在的问题是只有获得焦点的JInternalFrame的内部界面才可以得到鼠标事件,如果JInternalFrame A是有焦点的,那么JInternalFrame B上的Component就没办法捕捉到MouseEvent了,除非在JInternalFrame B上点击一下(但业务要求不可以这样)怎么才能实现鼠标移动到任何Component都有鼠标事件呢?或者在鼠标进入一个JInternalFrame后,这个JInternalFrame自动获得焦点呢?不用各位给源代码,只要给个思路就可以,但最好测试过。
分不够可以另外加。Thanks
这些小界面需要实现鼠标事件,移动\进入等,来显示不同的tooltip或颜色但现在的问题是只有获得焦点的JInternalFrame的内部界面才可以得到鼠标事件,如果JInternalFrame A是有焦点的,那么JInternalFrame B上的Component就没办法捕捉到MouseEvent了,除非在JInternalFrame B上点击一下(但业务要求不可以这样)怎么才能实现鼠标移动到任何Component都有鼠标事件呢?或者在鼠标进入一个JInternalFrame后,这个JInternalFrame自动获得焦点呢?不用各位给源代码,只要给个思路就可以,但最好测试过。
分不够可以另外加。Thanks
解决方案 »
- protected Image means(Image imageIn) 我想知道means是属于谁的方法?
- Invalid DN Syntax (34) Invalid DN Syntax
- [疑问]返回一个字符串的相反值如何做呢?
- 马上揭帖的问题:applet或japplet在浏览器中的显示问题!!
- 请教一个线程的问题!!!
- JTree中getLeadSelectionPath()返回不正常
- 网页中的<form>可以和Applet交互吗?
- 怎样用jbuilder 7开发软件,开发多窗体软件,并且能和sql-server数据库相连,具体步骤,或者可以参考那些书籍,最后怎样打包发行?谢谢!
- Java连接DLL的问题
- Jrun安装时序列号空着不填是否影响使用,login不上为什么?
- JDOM帮助
- 谁有jbuilder中文版!?
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;
import java.awt.event.MouseMotionAdapter;import javax.swing.*;public class T {
public static void main(String[] args) {
JTable table1 = new JTable(5, 5);
table1.addMouseMotionListener(new MouseMotionAdapter() {
public void mouseMoved(MouseEvent e)
{
System.out.println("table1 mouse move " + e.getPoint());
}
});
table1.addMouseListener(new MouseAdapter() {
public void mouseEntered(MouseEvent e)
{
System.out.println("table1 mouse enter");
}
}); JTable table2 = new JTable(5, 5);
table2.addMouseMotionListener(new MouseMotionAdapter() {
public void mouseMoved(MouseEvent e)
{
System.out.println("table2 mouse move " + e.getPoint());
}
});
table2.addMouseListener(new MouseAdapter() {
public void mouseEntered(MouseEvent e)
{
System.out.println("table2 mouse enter");
}
});
JDesktopPane desktop = new JDesktopPane(); JInternalFrame f1 = new JInternalFrame("f1", true);
f1.getContentPane().add(new JScrollPane(table1));
desktop.add(f1);
f1.setSize(200, 200);
f1.setVisible(true); JInternalFrame f2 = new JInternalFrame("f2", true);
f2.getContentPane().add(new JScrollPane(table2));
desktop.add(f2);
f2.setSize(200, 200);
f2.setLocation(100, 100);
f2.setVisible(true);
JFrame f = new JFrame();
f.getContentPane().add(desktop, BorderLayout.CENTER);
f.setSize(600, 600);
f.setLocationRelativeTo(null);
f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
f.setVisible(true);
}
}
然后再根据rowAtPoint得到当前鼠标在哪行,根据这个来实现不同的cell绘制
但是如果焦点不在当前table上,getMousePosition()得到的point是null原来不是鼠标捕获的问题。现在解决了谢谢