Java:使用重叠JComponents进行鼠标命中检测

时间:2012-09-25 22:59:53

标签: java swing jpanel java-2d

我有一个带有null布局的JPanel。在这个面板上,我绘制了一些自定义JComponents作为标记,小红色圆形和线条。

当线不是水平线或垂直线时,JComponent的“敏感区域”是一个矩形,其线条本身具有斜边。这个过多的区域经常会“窃取”MouseEvents到标记。

如果用户没有点击实线,我怎样才能让MouseEvents“传递”到被遮盖的对象?

1 个答案:

答案 0 :(得分:2)

正确的方法是moonwave99建议的。

1)创建并保留一系列行。

2)使用Graphics2D原语绘制数组中的每一行,覆盖JPanel的paintComponent方法。

3)将一个MouseListener添加到JPanel,并在行的数组中使用一个研究函数,以了解选择了哪一行。