【发布时间】:2010-02-21 18:30:12
【问题描述】:
我有一个简单的 Java 程序,它允许用户在 JPanel 上绘制矩形,然后移动它们、调整它们的大小并删除它们。
绘图面板实现了 MouseListener 和 MouseMotionListener。触发事件时,它会检查选择了哪个菜单选项(新矩形、移动、调整大小或删除),并做出相应反应。
选择“调整大小”选项时,侦听器的方法执行以下操作:
MouseMoved 调用布尔检测边界()。当返回 true 时,边界所属的矩形被设置为活动矩形。
MouseDragged 调用 void moveBoundary,它将检测到的边界沿拖动手势的方向移动。
现在我正在寻找一种使要移动的边界突出的方法。我可以用较粗的线条或不同的颜色重新绘制整个矩形,这是我现在将给定矩形设置为活动矩形时所做的,但这不是我想要的。我想只为一个边界重新着色。
可以处理 BorderFactory 的 createMatteBorder 方法的 setBorder 方法似乎非常适合这些目的,但我还没有找到一种方法来实现它。
这里有人知道我如何做到这一点吗?
我们将不胜感激所有建议。
【问题讨论】: