即時嘗試插入gif作爲我的應用程序的背景。我剪切了所有的幀並將它們重命名爲f1/f2/f3/f4/f5/f6/.....我將使用計時器來更改幀,使其看起來像動畫。作爲背景的JPanel上的圖像
總共有42幀,所以f42.png是最後一幀。代碼似乎很好,但沒有結果。任何幫助?
全局變量:
private String backgroundFile;
public JPanel backgroundPanel, areaImage;
private BufferedImage background;
private javax.swing.Timer timerBackground;
構造,其中定時器初始化:
public Game()
{
entryWindow();
this.setLayout(null);
timerBackground = new javax.swing.Timer(100,this);
timerBackground.stop();
}
動畫方法代碼:
private void backgroundAnimation()
{
backgroundFile = "f"+backgroundNum+".png";
try{
background=ImageIO.read(new File(backgroundFile));
}
catch(IOException e)
{
}
backgroundPanel = new JPanel()
{
@Override
protected void paintComponent(Graphics g) {
super.paintComponent(g);
g.drawImage(background, 0, 0, 1100,800,null);
}
};
backgroundPanel.setBackground(Color.BLACK);
backgroundPanel.setBounds(0, 0, 1100, 800);
if (backgroundNum>42)backgroundNum++;
else backgroundNum=1;
add(backgroundPanel);
backgroundPanel.setVisible(true);
}
動作偵聽器,定時器:
if (ae.getSource() == timerBackground)
{
backgroundAnimation();
}
您的問題是「以JPanel爲背景的繪圖圖像」,這並不回答原來的問題 - 它回答了你腦海中的問題 – gpasch