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

问题描述 投票:0回答:1

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

只是普通字体代码:

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

   setFont(font);
java eclipse fonts opacity
1个回答
0
投票

在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;
        }
    }
© www.soinside.com 2019 - 2024. All rights reserved.