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

如何将所有JButtons的默认鼠标按下背景颜色覆盖为其当前背景颜色的较深阴影?

要实现将所有JButtons的默认鼠标按下背景颜色覆盖为其当前背景颜色的较深阴影,可以通过以下步骤来完成:

  1. 创建一个自定义的按钮类,继承自JButton,并重写其paintComponent方法。
代码语言:txt
复制
import javax.swing.*;
import java.awt.*;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;

public class ShadowButton extends JButton {
    private static final Color SHADOW_COLOR = new Color(0, 0, 0, 50); // 阴影颜色,可根据需求调整透明度

    public ShadowButton(String text) {
        super(text);
        setOpaque(false); // 设置按钮透明
        setContentAreaFilled(false); // 设置按钮内容区域透明
        setBorderPainted(false); // 取消按钮边框
        setForeground(Color.WHITE); // 设置按钮前景色
        setFocusPainted(false); // 取消按钮焦点样式

        addMouseListener(new MouseAdapter() {
            @Override
            public void mousePressed(MouseEvent e) {
                repaint(); // 鼠标按下时触发重绘
            }

            @Override
            public void mouseReleased(MouseEvent e) {
                repaint(); // 鼠标释放时触发重绘
            }
        });
    }

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

        if (getModel().isPressed()) {
            // 绘制当前背景颜色的较深阴影
            g2d.setColor(getBackground().darker());
            g2d.fillRect(0, 0, getWidth(), getHeight());
        } else {
            // 绘制按钮默认状态
            g2d.setColor(getBackground());
            g2d.fillRect(0, 0, getWidth(), getHeight());
        }

        g2d.dispose();
    }
}
  1. 在你的界面中使用ShadowButton替代原有的JButton。
代码语言:txt
复制
import javax.swing.*;
import java.awt.*;

public class MyFrame extends JFrame {
    public MyFrame() {
        setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        setTitle("Shadow Button Demo");
        setSize(400, 300);
        setLocationRelativeTo(null);

        // 创建一个面板
        JPanel panel = new JPanel();
        panel.setBackground(Color.WHITE);

        // 创建ShadowButton并添加到面板中
        ShadowButton button1 = new ShadowButton("Button 1");
        ShadowButton button2 = new ShadowButton("Button 2");
        ShadowButton button3 = new ShadowButton("Button 3");
        panel.add(button1);
        panel.add(button2);
        panel.add(button3);

        // 将面板添加到窗口中
        add(panel);
    }

    public static void main(String[] args) {
        SwingUtilities.invokeLater(() -> {
            MyFrame frame = new MyFrame();
            frame.setVisible(true);
        });
    }
}

这样,当鼠标按下按钮时,按钮的背景颜色会被覆盖为其当前背景颜色的较深阴影。你可以根据需要调整阴影颜色的透明度,也可以根据实际情况对ShadowButton进行进一步的定制和扩展。

推荐的腾讯云相关产品:腾讯云云服务器(CVM)和腾讯云云数据库MySQL。

  • 腾讯云云服务器(CVM):提供弹性计算能力,可根据业务需求灵活调整配置,支持多种操作系统,具备高可用性和可扩展性。产品介绍链接:腾讯云云服务器
  • 腾讯云云数据库MySQL:提供稳定可靠的云端数据库服务,支持高性能、高可用的MySQL数据库,具备自动备份、容灾、监控等功能。产品介绍链接:腾讯云云数据库MySQL
页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

使用chrome调试CSS

####仅查看实际应用于元素CSS 1、styles 选项卡中会显示适用于元素所有规则,包括已被覆盖声明,如果对覆盖声明不感兴趣,可以点击与 styles 相邻 computed 选项卡,仅查看实际应用于元素...3、这里更多操作还有其他一些功能,从左往右依次是 文字阴影、盒子阴影、文字颜色背景颜色。...盒模型默认单位像素,输入百分比也会转成像素值。...DevTools根据它在样式表中找到颜色生成页面调色板。 使用吸管从页面上取样 打开拾色器时,默认情况吸管 滴管处于打开状态。...要将所选颜色更改为页面上其他颜色: 1、将鼠标悬停在视口中目标颜色上。 2、点击确认。

5.4K20

【CSS进阶】CSS 颜色体系详解

说到 CSS 颜色,相比大家都不会陌生,本文是我个人对 CSS 颜色体系一个系统总结与学习,分享给大家。 先用一张图直观感受一与 CSS 颜色相关大概覆盖了哪些内容。...文本颜色 color:red 元素背景色 background-color:red (包含各类渐变) 元素边框 border-color:red 元素阴影或文字阴影 box-shadow...这是因为边框颜色阴影颜色默认就是当前盒子文本颜色,其中 border 兼容性很好,可以支持到 IE6 。...当然 border 和 box-shadow 是特例,不是所有需要填写颜色属性不填写都会默认继承文本。...以一个按钮例,我们用 hsl 颜色表示法表示按钮 normal 状态背景色值,我们希望 hover 时候,背景色暗一点,而 active 时候背景色亮一点。

1.7K61

MacBook苹果电脑如何安装Adobe PS、AU、PR等软件?

这样,你对层可见性更改(就是你点击小眼睛行为)现在也会包含在历史记录中。 不小心点错的话,和所有操作一样,Ctrl+Z回退一步就OK了。 08....这时候,你可以在图层开头小眼睛上右键点击一,在里面各个图层和文件组增加一个颜色。 这样,你可以将同类文件使用同样颜色标记,从而可以很好地区分他们。 这样看上去,是不是舒服多了?...只需按住Alt键,并把图层面板中那些“FX”图标,从一个图层拖拽到另一个图层上。这样,它样式就可以被复制过来了。 16. 改变画布背景色 有时候,我们做设计颜色可能会比较深。...这时,如果你画布背景颜色也比较深,你设计边界可能会不太好辨认。 这时,尝试着修改一画布背景色吧。...快速关闭文档 下班时候,如何用最快速度关掉PS? 好问题。 Ctrl+W是可以快速关闭当前文档。另外,按住Alt+Ctrl+W,你就可以一次性关闭所有打开文档。 别关得太快了。

7.6K31

ps快捷键常用表格

8、Command+Option+A:选中所有图层 顾名思义,该快捷键可以让我们迅速选中所有图层,免去键盘(Command /shift)+鼠标点击来选中图层麻烦。...需要注意是,当文档中存在背景图层时,此快捷键则不会选中背景图层,只会选中除它之外所有图层。...10、D:复位颜色 PS默认前景色和背景黑色、白色,而当我们做了一段时间设计后,难免会遇到颜色已经不再是黑白,而又想用到黑白时候,这个时候,只要按下键盘快捷键D即可恢复默认状态了。...PS:所有涉及字母键快捷键都要在英文输入状态使用。 11、X:切换前景色和背景色 字母X键作用,一是前景色和背景互换,一是在蒙版状态,切换黑白画笔。...15、Shift+Option+M:切换成“正片叠底”模式 当在使用画笔工具或者污点修复画笔工具类时,此快捷键,可以把当前绘画模式从默认“正常”切换到“正片叠底”模式。

2K20

CSS第五天-定位

使用,增强网页交互体验 过度所有属性:transition: all 1s === 给盒子添加阴影效果 transition: 过度属性 花费时间(s) 运动曲线 何时开始 可以简写:transition...:border-radius 让盒子四个角变圆润 数字+px 、百分比 (从上、右、、左) ---- 垂直对齐方式:vertical-align baseline 默认 top 顶部对齐 middle...焦点选择器 input:focus 链接伪类选择器 link、visited、hover、active(未访问过、访问过、鼠标悬停、鼠标) 属性选择器 input [ type = text ]...h-shadow 水平偏移量,允许负值 v-shadow 垂直偏移量,允许负值 blur 模糊度 /// color 阴影颜色 ---- 垂直方向居中: 文字、行内元素 line-height 等于height...baseline 默认值 ---- box 盒子阴影 & text 文字阴影 shadow blur spread inset ---- 只了解: 背景图片大小: contain cover 溢出隐藏

2.7K40

Spread for Windows Forms快速入门(5)---常用单元格类型(

如果他们显示图片,你可以选择当按钮显示另外一张图片。你可以自定义按钮单元格颜色,包括边框颜色,文本颜色以及背景颜色。另外,按钮单元格可以显示三维外观,并且你可以自定义高亮和阴影颜色。...如果你使用有两种状态按钮,这就显示一个未按状态。 PictureDown 已经按钮设置一副图。 ShadowSize 设置阴影厚度,阴暗面和阳面的颜色(以显示出他三维效果)。...TwoState 设置按钮函数是否显示一个有两种状态拨动开关。每次你点击按钮,按钮就会更改状态。 ? 默认情况,按钮仅有一个状态,当且仅当指针时才会改变外观。...默认情况,按钮行为类似于开关按钮,这样你可以点击鼠标左键,并且当你松开鼠标时,按钮就会弹起。...如果你愿意,按钮单元格会像切换按钮或者有两种状态按钮一样,当你使用鼠标左键点击时候按钮会保持状态。按钮“否”当他们没有被时, “真”当他们被时。

4.4K60

EasyX图形库学习(三、用easyX实现移动小球、图片-加载、输出)

"当前填充颜色"是指通过 setfillcolor 设置用于当前填充颜色。 查看全部三元光栅操作码请参考这里:三元光栅操作码。...当鼠标位于按钮上时,按钮背景色会变为深蓝色;否则为浅灰色。 如果在按钮上检测到鼠标左键,函数会返回true。 在主循环中,我们创建了两个按钮:“Start Game”和“End Game”。...设置背景与文本属性: 设置窗口背景黄色。 设置文本背景模式透明,这样文本在绘制时不会覆盖背景。...//支持双击 //设置窗口背景颜色 setbkcolor(YELLOW); //用设置背景颜色填充整个窗口 cleardevice(); //窗口坐标体系:窗口左上角是坐标原点,X轴向右增大...("左键\n"); Case VK_RIGHT : vx = 0; //printf("右键\n"); break; } } //双缓冲绘图:所有的绘图代码必须放在

30810

一键切换亮色模式和暗色模式,用Figma搞定!

这是因为,在黑暗模式背景已经完全为黑色,此时在黑色背景上使用100透明度灰度颜色时,你颜色会完全不可见。...例如:在上面的图片中,层级一(Primary)背景白色,层级二(Secondary)背景浅灰色。 除了这些颜色之外,我们还使用了彩色版本背景,两种蓝色分别适用于浅色和深色模式。...您可以在暗色模式使用相同效果,但是由于阴影颜色已经很暗,除非更改背景颜色,否则用户可能很难看到该效果。 内阴影效果与外部投影效果非常相似,但是这次阴影效果在元素内部给出。这使您块元素看起来更厚。...请注意,在暗模式,由于阴影颜色是暗,因此可能看不到这种效果。 最后,Figma具有一个非常有用且功能强大功能,称为“自动布局”。...OK,激动人心时刻来了,如果我们已经完整创建了所有上文效果,那么只需要使用插件简单设置一,就可以一键在亮色模式和暗色模式之间转换。

18K11

我写CSS常用套路(附demo效果实现与源码)

不论效果再怎么华丽,万变不离宗。 1、交错动画 ? 有时候,我们需要给多个元素添加同一个动画,播放后,不难发现它们会一起运动,一起结束,这样就会显得很平淡无奇。 那么如何将动画变得稍微有趣一点呢?...本demo地址:https://codepen.io/alphardex/full/abbWOPR 12、box-shadow 盒子添加阴影,增加盒子立体感,可以多层叠加,并且会使阴影更加丝滑 ?...本demo地址:https://codepen.io/alphardex/full/pooQMVp 23、mix-blend-mode PS里混合模式,常用于文本在背景特殊效果 以下利用滤色模式(...e.clientX和e.clientY来获得鼠标当前位置 既然能够获取鼠标的位置,那么跟踪鼠标的位置也就不是什么难事了:通过监听mouseenter和mouseleave事件,来获取鼠标出入一个元素时位置...(syntax)颜色类型,这样浏览器就能理解并对颜色应用插值方法来进行动画 还记得上文提到圆锥渐变conic-gradient()吗?

1.6K20

我写CSS常用套路(附demo效果实现与源码)

不论效果再怎么华丽,万变不离宗。 1、交错动画 ? 有时候,我们需要给多个元素添加同一个动画,播放后,不难发现它们会一起运动,一起结束,这样就会显得很平淡无奇。 那么如何将动画变得稍微有趣一点呢?...本demo地址:https://codepen.io/alphardex/full/abbWOPR 12、box-shadow 盒子添加阴影,增加盒子立体感,可以多层叠加,并且会使阴影更加丝滑 ?...本demo地址:https://codepen.io/alphardex/full/pooQMVp 23、mix-blend-mode PS里混合模式,常用于文本在背景特殊效果 以下利用滤色模式(...e.clientX和e.clientY来获得鼠标当前位置 既然能够获取鼠标的位置,那么跟踪鼠标的位置也就不是什么难事了:通过监听mouseenter和mouseleave事件,来获取鼠标出入一个元素时位置...(syntax)颜色类型,这样浏览器就能理解并对颜色应用插值方法来进行动画 还记得上文提到圆锥渐变conic-gradient()吗?

1.4K40

如何在 CSS 中设计出漂亮阴影

然而,当我环顾网络时,很明显,大多数阴影并不像它们所希望那样丰富,网络上覆盖着模糊灰色盒子,看起来并不像影子。 在本教程中,我们将学习如何将典型箱形阴影转换为漂亮、逼真的阴影。...颜色匹配阴影 到目前为止,我们所有阴影都使用了半透明黑色,比如.这实际上并不理想。...右侧框与颜色色调和饱和度相匹配,但会降低亮度。我们最终得到了一个更有活力盒子! 当我们对阴影使用较深颜色时,也会发生类似的效果: 在我看来,这些阴影都不太对劲。...这在极端情况最为明显: hsl(0deg 0% 100%)纯白色,饱和度 0%。 hsl(0deg 100% 100%)也是纯白色,即使完全饱和。...如果我们将亮度设置 95%,则存在差异,但很微妙: 对于非常深颜色也是如此: 然而,当我们处于亮度光谱中间时,全范围饱和度是可用: 以下是我看法:50% 亮度是所有色调默认”版本。

36610

CSS入门?一篇就够了!

基本语法格式如下: * { 属性1:属性值1; 属性2:属性值2; 属性3:属性值3; } 例如下面的代码,使用通配符选择器定义CSS样式,清除所有HTML标记默认边距。...如果图片不重复地话,图片覆盖不到地地方都会被背景色填充。 如果有背景图片平铺,则会覆盖背景颜色。 小技巧: 我们提倡 背景图片后面的地址,url不要加引号。...,常用属性值如下: none:没有边框即忽略所有边框宽度(默认值) solid:边框单实线(最为常用) dashed:边框虚线 dotted:边框点线 double:边框双实线...盒子阴影 语法格式: box-shadow:水平阴影 垂直阴影 模糊距离 阴影尺寸 阴影颜色 内/外阴影; [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-WC0goKSG...相对定位,相对于原文档流位置进行定位 absolute 绝对定位,相对于上一个已经定位父元素进行定位 fixed 固定定位,相对于浏览器窗口进行定位 静态定位(static) 静态定位是所有元素默认定位方式

5.2K20

ps快捷键

2)F6键打开颜色调板,然后点击色板标签,用鼠标点击可以修改前景色,Ctrl 键点击可以修改背景色。 在英文输入法,在键盘上点击D键可以使前背景默认为黑白色,X键可以切换前景色和背景色。...用于所有图层勾选情况:它可以选择所有图层与点击颜色相同或相近。...小缩览图:以小图标的形式来描述渐变颜色。 大缩览图: 复位渐变:恢复系统默认渐变颜色。 替换渐变:由系统当中颜色来替换当前面板渐变颜色。...(当前工具无数字参数,如移动工具) 【0】至【9】 保留当前图层透明区域(开关) 【/】 移去层效果 【Alt】+ 双击“效果”图标 投影效果(在“效果”对话框中) 【Ctrl】+【1】 内阴影效果...(当前工具无数字参数,如移动工具) 【0】至【9】     保留当前图层透明区域(开关) 【/】     投影效果(在”效果”对话框中) 【Ctrl】+【1】     内阴影效果(在”效果”对话框中

3.9K50

关于前端photoshop初探学习笔记

当前前景色。。。取样环,作为衬底看颜色变化。上面的颜色当前吸取颜色。 取样环 样本选项 颜色从哪个图层中吸取。 可以吸取不同图层颜色,只在当前图层中取色。...3)确定后, ctrl+shift+i 对进行“反选”(你要不反选羽化效果是出不来),“反选”后在按delete(delete可以多一次你羽化效果就重一次,你可以试试),最后是ctrl+...对所有图层取样。将多个图层当做一个图层来对待。将沟去掉时,鼠标扫过另外图层时对他没有影响 。画笔,得到一个比较小画笔笔头。 魔棒工具 在白色背景中单击,可以选择出阴影部分。。 连续。...半径 半径越大,离原选区边缘距离越大地方就会被选中 alt减选。。注意各个工具之间配合。。 抠图 背景 ps默认背景。...打开操作时窗口菜单工具选项打钩。 ctrl+w关闭窗口。ctrl+w+alt关闭所有的窗口。 ctrl+o打开文件 。ctrl+n打开新文件,创建新文件。

2.2K60

每天10个前端小知识 【Day 13】

:使用图片来绘制边框 box-shadow 设置元素阴影,设置属性如下: 水平阴影 垂直阴影 模糊距离(虚实) 阴影尺寸(影子大小) 阴影颜色 内/外阴影 其中水平阴影和垂直阴影是必须设置 背景 新增了几个关于背景属性...: content-box; 背景显content区域开始显示 background-clip: no-clip; 默认属性,等同于border-box 通常情况,背景都是覆盖整个元素,利用这个属性可以设定背景颜色或图片覆盖范围...能够规定水平阴影、垂直阴影、模糊距离,以及阴影颜色 text-decoration CSS3里面开始支持对文字更深层次渲染,具体有三个属性可供设置: text-fill-color: 设置文字内部填充颜色...怎么使用 CSS 如何画一个三角形 盒子模型,默认情况是一个矩形,实现也很简单。...opacity:0 opacity属性表示元素透明度,将元素透明度设置0后,在我们用户眼中,元素也是隐藏。 不会引发重排,一般情况也会引发重绘。

11610
领券