是否可以编辑字体的不透明度?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了是否可以编辑字体的不透明度?相关的知识,希望对你有一定的参考价值。

我已经看到很多改变jpanel和图像的不透明度的方法,但是无论我多么努力,我都找不到改变字体和字体的不透明度的任何东西。如果可能,最好不要导入库。

只是普通字体代码:

   Font font = new Font("SansSerif", Font.BOLD, 15);

   setFont(font);
答案

在Swing中,您应该扩展LabelUI以实现标签的不透明度。试试这个

    class OpacityLabelUI extends BasicLabelUI 

        private int alpha = 0x55;

        public void setAlpha(int alpha) 
            this.alpha = alpha;
        

        @Override
        protected void paintEnabledText(JLabel l, Graphics g, String s, int textX, int textY) 
            int mnemIndex = l.getDisplayedMnemonicIndex();
            g.setColor(applyAlpha(l.getForeground()));
            SwingUtilities2.drawStringUnderlineCharAt(l, g, s, mnemIndex, textX, textY);
        

        private Color applyAlpha(Color color) 
            color = new Color((color.getRGB() & 0xffffff) | (alpha << 24), true);
            return color;
        
    

以上是关于是否可以编辑字体的不透明度?的主要内容,如果未能解决你的问题,请参考以下文章

如何减少统一的不透明度?

UIView的不透明度和alpha是不是相同[重复]

jQuery UI 对话框 - 仅使用背景不透明度而不使字体变灰?

更改 .NET 中单个表单控件的不透明度

子 div 的不透明度是不是可以高于具有 css 的父级?

在 Java Swing 中禁用时如何调整字段的不透明度