
你的代码是正确的,可能是你图片的位置没有放对。我本地试过了,你可以像下面这样做:
首先修改一行代码:/res改为res
Image image=new ImageIcon("res/bg.jpg").getImage()
图片放到:
简单来说就是重写paint方法,然后调用画笔的drawImage这个方法。如:
对一个JPanel加入背景图片“bg01.png”,那么就重写paint这个方法如下
在类里
/**
* 背景图片
*/
Image backgroundImage = null
//这就是重写paint方法
public void paint(Graphics g)
{
loadRecources()
if(backgroundImage != null)
{
g.drawImage(backgroundImage, 0, 0, this)
}
}
public void loadRecources()
{
//载入背景图片
if(backgroundImage == null)
{
try
{
backgroundImage = ImageIO.read(new File("resources/Images/bg01.png"))
} catch (IOException e)
{
System.out.println("缺少背景图片")
JOptionPane.showMessageDialog(this, "找不到背景图片!", "文件缺失", JOptionPane.ERROR_MESSAGE)
}
}
}
这里只是写的一个示例代码,lz看看,然后分析下写一个类,然后如此尝试下,应该很快就能成功。
通过以下方式设置下背景就可以了:
background = new ImageIcon("images/backImage.png")
backImage = new JLabel(background)
backImage.setBounds(0, 0, background.getIconWidth(),
background.getIconHeight())
backPanel = (JPanel) this.getContentPane()
backPanel.setOpaque(false)
this.getLayeredPane().setLayout(null)
this.getLayeredPane().add(backImage, new Integer(Integer.MIN_VALUE))
backPanel.setLayout(new BorderLayout())
这样就可以把图片放在最下面了,效果图:
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)