
JPanel jp=new JPanel()://定义面板并初始化
Icon iocn=new ImageIcon("C:/My Documents/tupian.jpg")//定义图片并初始化,写上图片的绝对路径
JLabel jl=new JLabel(icon)://把图片放在标签上
jp.add(jl)//往面板上添加标签注意:面板JPanel不能之间添加图片iocn,icon需要放在标签JLabel上,才能在JPanel上显示
import java.awt.event.*
import javax.swing.*
public class MainJFrame extends JFrame{
private ImageJPanel ip
public MainJFrame() {
initial()
}
public void initial()
{
ip=new ImageJPanel()
this.setTitle("Demo")
this.setSize(400,300)
this.setResizable(false)
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE)
this.setLocationRelativeTo(this)
Container c=this.getContentPane()
c.setLayout(null)
ip.setBounds(0,0,this.getWidth(),this.getHeight())
c.add(ip)
this.setVisible(true)
}
public static void main(String[] args)
{
new MainJFrame()
}
}
class ImageJPanel extends JPanel
{
private ImageIcon ii
public ImageJPanel()
{
//bk.jpg是指背景图片的名称 ii=new ImageIcon("bk.jpg")
}
//绘制背景图片 public void paintComponent(Graphics g)
{
super.paintComponent(g)
g.drawImage(ii.getImage(),0,0,this)
}
}
JPanel p=new JPanel()JLabel l=new JLabel()
Icon icon=new ImageIcon("D:\\rk01.jpg")//在此直接创建对象
l.setIcon(icon)
l.setBounds(0, 0, icon.getIconWidth(),icon.getIconHeight())
p.add(l,new Integer(Integer.MIN_VALUE))
这样可以给panel加一个背景图
//重写JPanel的这个方法就可以了@Override
public void paintComponent(Graphics gs) {
Graphics2D g = (Graphics2D) gs
super.paintComponent(g)
//画背景图片
Image image = Toolkit.getDefaultToolkit().getImage(getClass().getResource(imgPath))
g.drawImage(image, 0, 0,width,height, this)
}
一个完整的代码:
package testimport java.awt.Graphics
import java.awt.Image
import java.net.URL
import javax.swing.ImageIcon
import javax.swing.JFrame
import javax.swing.JPanel
//为窗口添加背景图片
public class JFrameBackground {
private JFrame frame = new JFrame("带背景图片的JFrame")
private JPanel imagePanel
private ImageIcon backgroundimg
public JFrameBackground() {
imagePanel = new JPanel() {
@Override
protected void paintComponent(Graphics g) {
super.paintComponent(g)
URL location = this.getClass().getResource("grapes.gif")
backgroundimg = new ImageIcon(location)
Image img = backgroundimg.getImage()
g.drawImage(img, 0, 0, backgroundimg.getIconWidth(),
backgroundimg.getIconHeight(),
backgroundimg.getImageObserver())
frame.setSize(backgroundimg.getIconWidth(),
backgroundimg.getIconHeight())
}
}
frame.add(imagePanel)
frame.setVisible(true)
frame.pack()
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE)
}
public static void main(String[] args) {
new JFrameBackground()
}
}
这是运行的一个截图:
参考网址:
http://www.linuxidc.com/Linux/2011-08/41689.htm 两种设置背景的方法
http://blog.csdn.net/one_and_only4711/article/details/6594770 动态改变背景大小
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)