我一直在環顧四周,致力於使JPanel
能夠具有圖像背景。我知道有很多信息可以提供這一點(example 1和example 2)。這些都不是我正在尋找的。Java - 具有背景圖像和正常功能的JPanel
我正在尋找的是一種方法,只是添加功能或功能,以設置一個背景圖像在JPanel
同時保持一切。我現在面臨的問題是我有幾個類擴展了JPanel
,當我改變它們以擴展新的ImagePanel
類時,構造函數失敗(顯然,參數不同)。我爲這些文件中的一個創建了構造函數super(new BorderLayout());
,並且目前爲止我可以使其運行的唯一方法是丟棄佈局或背景圖像。我無法一起工作。
以下是最新絕望的嘗試:
import java.awt.*;
import javax.swing.JPanel;
class ImagePanel extends JPanel {
private Image img;
public ImagePanel(Image img, LayoutManager layout) {
this.img = img;
Dimension size = new Dimension(img.getWidth(null), img.getHeight(null));
setPreferredSize(size);
setMinimumSize(size);
setMaximumSize(size);
setSize(size);
setLayout(null);
super.setLayout(layout);
}
public void paintComponent(Graphics g) {
g.drawImage(img, 0, 0, null);
}
}
如果有人可以幫助我,或指向我往什麼我要找的,這將是巨大的。我不需要任何超級瘋狂的功能,如背景縮放或類似的東西。我只是想讓圖像成爲背景,並以其他方式維護其功能。
謝謝。
您是否嚴格要「JPanel」,還是可以考慮其他組件? – afsantos
那麼,我希望它只是一個'JPanel'。這似乎是最簡單的,功能明智的,但是再一次,我來這裏是有原因的。無論我猜測什麼作品。如果使用'JLabel'圖標方法有問題,所以我寧願使用「超級」'JPanel'來處理它。 –
您可以簡單地使用'JLabel'並在其上設置適當的'LayoutManager'。順便說一句,不要調用'setPreferredSize(size); setMinimumSize(size); setMaximumSize(size); setSize(size); setLayout(null); '(實際上不推薦使用這些方法)。而是使用適當的'LayoutManager'。 –