gpt4 book ai didi

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

转载 作者:搜寻专家 更新时间:2023-11-01 03:56:15 24 4
gpt4 key购买 nike

我有一个简单的 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/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com