簡體   English   中英

JPanel移除顏色漸變

[英]JPanel remove color gradient

我有以下問題:

我有自己的JPanel實例來創建ImageButton。 設置背景時,它會自動添加顏色漸變,這會使透明圖像的背景與我的JFrame的顏色不匹配。

如何刪除此漸變?

public ImageButton(Runnable exec, boolean on) {
        super();

        setBackground(new Color(238,238,238));
        setVisible(false);
        switched_on = on;
        setSize(new Dimension(64, 64));
        setPreferredSize(new Dimension(64, 64));
        if(on) {
            img = ImageButton.on;
        }else{
            img = ImageButton.off;
        }
}

@Override
public void paintComponent(Graphics g) {
    super.paintComponent(g);
    g.drawImage(img, 0, 0, null);
}

截圖:ImageButton

https://i.stack.imgur.com/hen6K.png

另一個屏幕截圖,您可以更好地看到漸變

https://i.stack.imgur.com/k8eFl.png

設置背景時,它會自動添加顏色漸變,這會使透明圖像的背景與我的JFrame的顏色不匹配。

使面板透明:

setOpaque( false );

現在,圖像和面板都是透明的,因此背景顏色將成為ImagePanel父組件的背景。

盡管更簡單的方法是只使用JLabel 默認情況下, JLabel是透明的。 然后,您可以只使用setIcon(...)方法來更改圖像。 因此,不需要自定義繪畫或自定義組件。

我終於找到了問題。 我試圖在源中發現此錯誤,但是圖像本身的左上角具有白色背景。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM