修复JButton.setBackground(new Color())中Alpha不正常工作的问题,可以尝试以下方法:
示例代码:
JButton button = new JButton("Button");
button.setContentAreaFilled(false);
button.setOpaque(true);
button.setBackground(new Color(255, 0, 0, 128)); // 设置半透明背景颜色
示例代码:
import javax.swing.*;
import javax.swing.plaf.basic.BasicButtonUI;
import java.awt.*;
public class CustomButtonUI extends BasicButtonUI {
@Override
public void paintBackground(Graphics g, JComponent c, int x, int y, int w, int h) {
Graphics2D g2d = (Graphics2D) g.create();
g2d.setComposite(AlphaComposite.getInstance(AlphaComposite.SRC_OVER, 0.5f)); // 设置透明度
g2d.setColor(c.getBackground());
g2d.fillRect(x, y, w, h);
g2d.dispose();
}
}
// 使用自定义的ButtonUI
JButton button = new JButton("Button");
button.setUI(new CustomButtonUI());
button.setBackground(new Color(255, 0, 0, 128)); // 设置半透明背景颜色
以上方法可以修复JButton.setBackground(new Color())中Alpha不正常工作的问题。
领取专属 10元无门槛券
手把手带您无忧上云