[英]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
另一個屏幕截圖,您可以更好地看到漸變
設置背景時,它會自動添加顏色漸變,這會使透明圖像的背景與我的JFrame的顏色不匹配。
使面板透明:
setOpaque( false );
現在,圖像和面板都是透明的,因此背景顏色將成為ImagePanel父組件的背景。
盡管更簡單的方法是只使用JLabel
。 默認情況下, JLabel
是透明的。 然后,您可以只使用setIcon(...)
方法來更改圖像。 因此,不需要自定義繪畫或自定義組件。
我終於找到了問題。 我試圖在源中發現此錯誤,但是圖像本身的左上角具有白色背景。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.