ホームページ > Java > &#&チュートリアル > macOS 上の Java で半透明ウィンドウの JLabel を正しく再描画する方法は?

macOS 上の Java で半透明ウィンドウの JLabel を正しく再描画する方法は?

Barbara Streisand
リリース: 2024-11-20 12:07:11
オリジナル
273 人が閲覧しました

How to Correctly Repaint a JLabel on a Translucent Window in Java on macOS?

半透明コンポーネントの再描画

質問: macOS 上の Java で半透明ウィンドウを作成しようとして、動的テキストを含む JLabel では、コンポーネントが正しく再描画されません。

解決策: この問題を解決するには、カスタム JLabel を拡張し、アイコン インターフェイスを実装して、目的の半透明効果を実現します。 AlphaComposite を使用した例を次に示します。

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

import java.awt.AlphaComposite;

import java.awt.Color;

import java.awt.Graphics;

import java.awt.Graphics2D;

import java.awt.RenderingHints;

import javax.swing.JLabel;

 

public class TranslucentLabel extends JLabel {

 

    private Image image;

    private AlphaComposite alphaComposite;

 

    public TranslucentLabel() {

        super();

        setBackground(new Color(0f,0f,0f,0.3f));

        alphaComposite = AlphaComposite.getInstance(AlphaComposite.SRC_OVER, 0.5f);

    }

 

    @Override

    public void paintComponent(Graphics g) {

        Graphics2D g2d = (Graphics2D) g;

        g2d.setRenderingHint(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON);

        image = createImage(getWidth(), getHeight());

        Graphics2D imageGraphics = (Graphics2D) image.getGraphics();

        imageGraphics.setRenderingHint(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON);

        super.paintComponent(imageGraphics);

        g2d.setComposite(alphaComposite);

        g2d.drawImage(image, 0, 0, null);

        g2d.dispose();

    }

}

ログイン後にコピー

このアプローチでは、カスタム JLabel (TranslucentLabel) が作成され、AlphaComposite テクニックを適用して、半透明のフレームの背景の上に半透明の背景を合成し、コンポーネントが正しく再描画されます。

以上がmacOS 上の Java で半透明ウィンドウの JLabel を正しく再描画する方法は?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート