gpt4 book ai didi

java - 使用 GlassPane 的 Java 内部透明选择窗口

转载 作者:搜寻专家 更新时间:2023-11-01 01:27:59 25 4
gpt4 key购买 nike

我正在努力实现以下目标

http://www.qksnap.com/i/3hunq/4ld0v/screenshot.png

我目前能够使用以下代码在半透明玻璃板背景上成功绘制矩形:

    protected void paintComponent(Graphics g) {
Graphics2D g2 = (Graphics2D) g;
g.setColor(Color.black); // black background
g.fillRect(0, 0, frame.getWidth(), frame.getHeight());
g2.setColor(Color.GREEN.darker());
if (getRect() != null && isDrawing()) {
g2.draw(getRect()); // draw our rectangle (simple Rectangle class)
}
g2.dispose();
}

效果很好,但是,我希望矩形内的区域完全透明,而外部仍然很暗,就像上面的屏幕截图一样。

有什么想法吗?

最佳答案

..have the area within the rectangle be completely transparent while the outside was still darken much like the screenshot above.

  • 创建一个 Rectangle (componentRect),它是要绘制的组件的大小。
  • 创建该形状的区域 (componentArea) (new Area(componentRect))。
  • 创建 selectionRectangleArea (selectionArea)。
  • 调用componentArea.subtract(selectionArea)移除选中部分。
  • 调用Graphics.setClip(componentArea)
  • 涂上半透明的颜色。
  • (如果需要更多绘画操作,请清除裁剪区域)。

关于java - 使用 GlassPane 的 Java 内部透明选择窗口,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12127422/

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