java - 单个 java.awt.Rectangle 可以用两种不同的边界颜色绘制吗?

标签 java awt

我有一个简单的 Java 程序,允许用户在 JPanel 上绘制矩形,然后移动它们、调整它们的大小并删除它们。

绘图面板实现了 MouseListener 和 MouseMotionListener。当事件被触发时,它会检查选择了哪个菜单选项(新矩形、移动、调整大小或删除),并做出相应的 react 。

选择“调整大小”选项时,监听器的方法执行以下操作:

  • MouseMoved 调用 boolean detectBoundary()。当返回 true 时,边界所属的矩形被设置为 Activity 矩形。

  • MouseDragged 调用 void moveBoundary,它会沿拖动手势的方向移动检测到的边界。

现在我要寻找的是一种使要移动的边界脱颖而出的方法。我可以用更粗的线条或不同的颜色重新绘制整个矩形,这是我现在将给定矩形设置为 Activity 矩形时所做的,但这不是我想要的。我只想重新着色一个边界。

可以处理 BorderFactory 的 createMatteBorder 方法的 setBorder 方法对于这些目的来说似乎是理想的,但我还没有找到一种方法来实现它。

这里有没有人知道我如何才能做到这一点?

我们将不胜感激所有建议。

最佳答案

你能调用 java.awt.Graphics 的 setColor(Color color) 方法吗?

听起来您可能会要求更复杂的东西,但我不确定具体是什么。 如果你想在同一个矩形上使用两种不同的边界颜色,我认为你必须使用两个矩形对象来做到这一点。顶部矩形将具有透明填充。这两个矩形需要一起移动,移动完成后第二个矩形需要从 View 中移除。

我不确定是否可以只改变一个简单矩形的一条边的颜色,但您可以用多个形状构建一个更复杂的形状,或者您可以将矩形绘制到 BufferedImage 中并绘制不同颜色的顶部线。

关于java - 单个 java.awt.Rectangle 可以用两种不同的边界颜色绘制吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2306909/

相关文章:

java - 被逐出的对象仍然在 Hibernate 中发布对数据库的更新

java - java.nio.file.Path 和 java.nio.* 有什么区别;

用于绘制图像的 Java Graphics2D 方法,其中使用像素 alpha 值,但颜色值替换为给定颜色

Java图形(颜色和字体)

java - 为什么我创建的点没有移动?

Java:如何向通过java.awt.frame实现的GUI窗口添加滚动条?

Java Web 服务。如何在 Java 控制台应用程序中创建 Web 服务?

java - JPA - 复合 key 识别中的关系

Java解析部分日期

java - JButton 无法通过 GIF 正确显示