You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何解决Java Swing中LoginNameText颜色透明度设置无效问题?

解决Java Swing JLabel透明度不生效的问题

你的代码有两个关键问题导致透明度效果没出来,修正后就能匹配Figma的设计:

  1. Alpha值计算优先级错误
    原代码里(int) 0.59*255会先把0.59强制转换为int(结果是0),再乘以255,最终alpha值为0,文字直接变成完全透明。必须给乘法运算加括号,保证先计算浮点乘法再转int:

    int alpha = (int) (0.59 * 255); // 正确结果是150
    
  2. JLabel的不透明属性阻碍透明效果
    JLabel默认opaque属性为true,这会让组件用背景色填充整个区域,覆盖前景色的透明效果。需要手动设置为false:

    LoginNameText.setOpaque(false);
    

另外注意字体名写错了,"Arials"应该是"Arial",否则会 fallback 到系统默认字体,和Figma设计的字体不一致。

修正后的完整代码:

int alpha = (int) (0.59 * 255);

JLabel LoginNameText = new JLabel();
LoginNameText.setBounds(0, 170, 500, 100);
LoginNameText.setText("Name");
LoginNameText.setFont(new Font("Arial", Font.BOLD, 30));
LoginNameText.setHorizontalAlignment(JLabel.CENTER);
LoginNameText.setForeground(new Color(30, 30, 30, alpha));
LoginNameText.setOpaque(false);

内容的提问来源于stack exchange,提问作者cihan toker

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.13 01:50:16