首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

如何修复JButton.setBackground(new Color())?Alpha不能正常工作

修复JButton.setBackground(new Color())中Alpha不正常工作的问题,可以尝试以下方法:

  1. 使用JButton.setContentAreaFilled(false)方法来禁用按钮的默认背景绘制,然后使用JButton.setOpaque(true)方法来启用按钮的不透明性。这样可以确保Alpha值正常工作。

示例代码:

代码语言:txt
复制
JButton button = new JButton("Button");
button.setContentAreaFilled(false);
button.setOpaque(true);
button.setBackground(new Color(255, 0, 0, 128)); // 设置半透明背景颜色
  1. 如果上述方法无效,可以尝试使用自定义的ButtonUI来绘制按钮的背景。通过继承javax.swing.plaf.basic.BasicButtonUI类,并重写其paintBackground()方法,可以实现自定义的背景绘制。

示例代码:

代码语言:txt
复制
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不正常工作的问题。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

android自定义状态栏颜色

*        * @param alpha The alpha to use        */       public void setTintAlpha(float alpha...           }       }   }   引用自:https://github.com/jgilfelt/SystemBarTint 代码复制进你的项目即可,好了,这些工作完成之后我们来看下效果...貌似已经达到效果了,但仔细观察,好像标题栏被提上去了,就是说APP界面全屏了,状态了盖在了APP上,恩,这并非我们想要的效果,那如何将界面从状态栏下部开始呢,只需要在Activity的布局文件最外层控件加上一个属性...fitsSystemWindows="true"时的效果,期初我怀疑是Activity不同的原因,因此我把Tab1Activity和Tab3Activity调了下位置,结果Tab3Activity成为首页后正常...,而Tab1Activity又不正常了,百思不得姐,最后实在没办法,就在Tab2Activity、Tab3Activity的OnCreate方法中加了几句代码: if (Build.VERSION.SDK_INT

1.8K60
  • iOS导航栏基础效果配置

    标题设置 self.navigationItem.title = @"标题"; 复制代码 正常情况下,控制器的标题会默认作为导航标题 前景色 self.navigationController.navigationBar.barTintColor...自定义视图 self.navigationItem.leftBarButtonItem = [[UIBarButtonItem alloc] initWithCustomView:view]; 复制代码 修复...barMetrics:UIBarMetricsDefault]; //此处使底部线条透明 [navigationBar setShadowImage:[UIImage new...]]; 复制代码 另外可以通过颜色转图片来修改导航条底部分隔线颜色 //动态地改变UIColor的alpha属性可以返回,不同alpha的图片;可用于动态改变导航条的透明度 + (UIImage *)imageWithColor...:(UIColor *)color{ CGRect rect = CGRectMake(0.0f, 0.0f, 1.0f, 1.0f); UIGraphicsBeginImageContext

    1.6K10

    测试面试题集-1.测试基础理论

    如何提交高质量的bug记录?...A: 按照开发阶段划分,软件测试可以分为单元测试、集成测试、系统测试和验收测试; 1.单元测试:针对每个单元的测试,以及确保每个模块能正常工作为目标; 2.集成测试:对已测试过的模块进行组装,进行集成测试...错误回归,就是在新版本中,对以前版本中出现并修复的缺陷进行再次验证,并以缺陷为核心,对相关修改的部分进行测试的方法。 Q: 八、什么是验收测试?Alpha测试和Beta测试的区别是什么?...Alpha测试的环境是受开发方控制的,用户的数量相对比较少,时间比较集中。Alpha测试在系统开发接近完成时对应用系统的测试;测试后仍然会有少量的设计变更。...这种测试一般由最终用户或其它人员完成,不能由程序员或测试员完成。 Q: 九、你提的问题,开发人员说不是BUG时,你如何应付?

    99210

    Web H5视频滤镜的“百搭”解决方案——WebGL着色器

    随着H5页面越做越炫酷的趋势,单一的视频播放已经不能满足我们的需求,视频滤镜在Web页面上的应用越来越广泛。 问题概述 如何实现视频滤镜呢?最容易想到的方案是使用CSS3内置的滤镜。...在Web上,如何实现这些算法呢? 我们不能够直接操作video标签的内容,但我们能够做一个“中转”,把video绘制到canvas里,然后直接使用canvas提供的绘制api,修改像素值。...分为顶点着色器(Vertex Shader)和片元着色器(Fragment Shader)两个步骤,具体的工作原理有很多介绍OpenGL的教程都有提及,此处不再赘述。...max(gl_FragColor.r - (1.0-alpha)*color.r, 0.0); float g = max(gl_FragColor.g - (1.0-alpha)*color.g..., 0.0); float b = max(gl_FragColor.b - (1.0-alpha)*color.b, 0.0); if(alpha < clipBlack){ alpha

    8K50

    WPF 已知问题 开启 WM_Pointer 消息之后 获取副屏触摸数据坐标偏移

    GetStylusPoint 或 GetIntermediateTouchPoints 方法获取触摸点时,将会发现所获取的触摸点的坐标是偏的,偏的坐标差值刚好是整个屏幕距离 此问题由 少珺 小伙伴发现且修复.../dotnet-campus/wpf/pull/9 修复后的测试包是 https://www.nuget.org/packages/dotnetCampus.WPF.Resource/6.0.4-alpha07...GetIntermediateTouchPoints 等方法获取触摸点信息时,可以看到触摸点信息存在偏差,偏差的坐标差值刚好是整个屏幕距离,也就是差了 N 个屏幕距离 复现步骤: 创建一个空 WPF 程序,按照 WPF dotnet core 如何开启...当你将程序移动到主屏幕上时,如果恰好此时你的主屏幕也是触摸屏,那你将可以看到应用程序实际是能正常工作的,画出你触摸的笔迹。...添加以下代码使用到此测试版本的 WPF 框架 <PackageReference Include="dotnetCampus.WPF.Resource" Version="6.0.4-<em>alpha</em>07

    30610

    Palette状态栏颜色提取,写的不错就分享了

    );   // 正常文字颜色      mPagerSlidingTabStrip.setTextColor(Color.BLACK);   }   private void initViews...);   // 正常文字颜色     mPagerSlidingTabStrip.setTextColor(Color.BLACK);   }   这些都是一些基本设置,然后Palette在哪里开始工作呢...然后每种颜色值减小一下,在合成RGB颜色,颜色就会看起来深一些了  * @return  */ private int colorBurn(int RGBValues) {   int alpha...        }       });   }   /**  * 颜色加深处理  *   * @param RGBValues  *            RGB的值,由alpha...然后每种颜色值减小一下,在合成RGB颜色,颜色就会看起来深一些了  * @return  */ private int colorBurn(int RGBValues) {   int alpha

    90160

    Git03之分支与版本

    Git如何给branch打tag 1.查看所有标签:git tag  2.创建tag 3.删除tag 8....假设你准备开发一个新功能,但是需要两周才能完成,第一周你写了50%的代码,如果立刻提交,由于代码还没写完,    不完整的代码库会导致别人不能干活了。...你创建了一个属于你自己的分支,别人看不到,还继续在原来的分支上正常工作,    而你在自己的分支上干活,想提交就提交,直到开发完毕后,再一次性合并到原来的分支上,这样,既安全,又不影响别人工作 3....分支(即test)进行修复,然后合并,最后删除; 4.当手头工作没有完成时,先把工作现场git stash一下,然后去修复bug,修复后,再git stash pop,回到工作现场 学习时,先暂不考虑远程问题...Git如何给branch打tag    发布一个版本时,我们通常先在版本库中打一个标签(tag),这样,就唯一确定了打标签时刻的版本。

    72920

    R语言ggplot2做柱形图并在指定的位置添加灰色背景

    今天的推文介绍一下柱形图实现的代码 image.png 先介绍一个小知识点 ggplot2作图X轴默认坐标轴的刻度是朝下的,Y轴默认的刻度是朝左的,如果要改为朝上和朝右,该如何设置。...这里我们把axis.ticks.length.x = unit(-1,'cm')刻度线的长度调整为负数就可以了, 但是还遇到一个问题是 横坐标的文本和标题可以通过vjust参数上下调节,纵坐标的参数却不能够用...is.na(score)) -> new_df 最基本的柱形图 new_df %>% ggplot(aes(score, total)) + geom_bar(stat = "identity...", color = "black", fill = "#C4843C") image.png 指定位置添加背景 new_df %>% ggplot...xmax = 99, ymin = 0, ymax = 35000, alpha = .5) + geom_bar(stat

    2K20
    领券