0

我正在尝试构建一个工具来定位 Swing 应用程序上的组件(例如按钮或文本字段)并“突出显示它”。我正在考虑使用热图的想法来突出显示。

有没有人用过这样的东西,也许可以指出如何为这个想法生成它们,因为我没有找到很多与此相关的信息。

我在这里先向您的帮助表示感谢 :)

4

2 回答 2

2

好吧,除非我错过了您的问题中的某些内容,否则这应该很容易。几乎可以设置所有 Swing 组件的背景颜色。例如,所有的子类javax.swing.JComponent都有一个setBackground()方法。

第二步是实际分配颜色。为此,您需要知道最小值、最大值和观察值。如果我们要制作一个简单的热图,例如白色到红色,那么您只需要确定 RGBColor规范中红色分量的数量。这可以通过以下公式完成:

int red = ((value-min)/(max-min))*255;
Color color = new Color(red, 255, 255)

然后,您将其指定color为文本字段按钮的背景。

于 2011-11-08T19:16:39.840 回答
0

我的建议不依赖于热图,但可能适合您的需求。大多数 Swing UI 组件都继承自 JComponent,它具有: - 一个getLocation返回组件在父框架上的位置的getSize方法 - 一个返回组件大小的方法 您可以在框架中添加一个方法来查找给定位置的组件在框架上(一个简单的碰撞检测算法会有所帮助)

找到该组件后,您可以使用 2D 图形在该位置绘制任意大小(矩形或任何其他形状)的半透明叠加层(参见示例)。这样,您可以在给定位置的情况下勾勒出主框架上的任何组件。我希望这有帮助。

于 2011-11-08T19:20:44.703 回答