gpt4 book ai didi

java - AWT 组件上的半透明面板

转载 作者:行者123 更新时间:2023-11-30 11:55:38 25 4
gpt4 key购买 nike

我有一个 AWT 组件(第 3 方库),我需要通过在其上显示一个半透明面板(在本例中为 128 的 alpha)来掩盖它。有什么办法可以做到这一点?我查看了使用 Sun 的 AWTUtilities 类的“TransparentPanel”类,但它有一个限制,即无法显示 0 < alpha < 255 的像素。即使这不是一个很好的解决方案,我只是在寻找一些方法来这样做。

最佳答案

也许带有半透明涂料的 GlassPane 可以解决这个问题。这是一个简单的例子:

import java.awt.Color;
import java.awt.GradientPaint;
import java.awt.Graphics;
import java.awt.Graphics2D;
import java.awt.Paint;
import javax.swing.JComponent;
import javax.swing.JFrame;
import javax.swing.JPanel;

public class GlassFrame extends JComponent
{
public GlassFrame()
{
super();
}

@Override
protected void paintComponent(Graphics g)
{
Graphics2D g2 = (Graphics2D)g.create();

Paint p = new GradientPaint(
0, 0, new Color(200,180,180,200), //Select RGB and Alpha values
getWidth(), 0, new Color(0,0,0,0)
);
g2.setPaint(p);
g2.fillRect(0, 0, getWidth(), getHeight());

g2.dispose();
}

public static void main(String args[])
{
JFrame jf = new JFrame("Simple test");
jf.add(new JPanel());
GlassFrame g = new GlassFrame();

jf.setSize(300,300);
jf.setVisible(true);

jf.setGlassPane(g);
g.setVisible(true);
}
}

关于java - AWT 组件上的半透明面板,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4903247/

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