在JPanel里加入背景图片

     找了很久,才弄清楚怎么样在JPanel中,简单方便地加入背景图片。

     做法就是先在把图片加入到一个JLabel对象中,再把该JLabel添加到JPanel中。

     package October;

 

import java.awt.BorderLayout;

import java.awt.Rectangle;

 

import javax.swing.ImageIcon;

import javax.swing.JFrame;

import javax.swing.JLabel;

import javax.swing.JPanel;

 

public class TestJPanel extends JFrame{

 

    private JPanel jpanel;

    private ImageIcon imageIcon;

    private JLabel imageLabel;

    public TestJPanel(){

       imageIcon = new ImageIcon("G:/XXX.jpg"); //写入文件路径

       imageLabel = new JLabel(imageIcon);         //初始化JLabel

       jpanel = new JPanel();

       this.add(BorderLayout.CENTER,jpanel);

       this.setVisible(true);  //设置为显示

       this.pack();

       //设置jframe的大小

       this.setBounds(new Rectangle(100,100,imageIcon.getIconWidth(),imageIcon.getIconHeight()));  

       jpanel.add(BorderLayout.CENTER,imageLabel);

     } 

    public static void main(String[] args){

       TestJPanel testJPanel = new TestJPanel();

     }

}

 

  • 1
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 4
    评论
可以通过创建一个继承自JPanel的类,并在该类中重写paintComponent方法来实现在JPanel中添加背景图片。具体步骤如下: 1.创建一个继承自JPanel的类,例如BackgroundPanel。 2.在BackgroundPanel类中定义一个Image类型的变量image,用于存储背景图片。 3.在BackgroundPanel类的构造方法中,将传入的背景图片赋值给image变量。 4.重写BackgroundPanel类的paintComponent方法,在该方法中使用Graphics类的drawImage方法将背景图片绘制到JPanel上。 下面是一个示例代码: ```java import java.awt.Graphics; import java.awt.Image; import javax.swing.JPanel; public class BackgroundPanel extends JPanel { private static final long serialVersionUID = 1L; private Image image; public BackgroundPanel(Image image) { this.image = image; } @Override protected void paintComponent(Graphics g) { super.paintComponent(g); g.drawImage(image, 0, 0, this.getWidth(), this.getHeight(), this); } } ``` 在使用时,可以先创建一个Image对象,将需要设置为背景的图片加载到该对象中,然后创建一个BackgroundPanel对象,并将该Image对象传入BackgroundPanel的构造方法中即可。 例如: ```java import java.awt.Image; import java.io.File; import java.io.IOException; import javax.imageio.ImageIO; import javax.swing.JFrame; public class Test { public static void main(String[] args) throws IOException { JFrame frame = new JFrame(); frame.setSize(500, 500); frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); // 加载图片 Image image = ImageIO.read(new File("background.jpg")); // 创建BackgroundPanel对象 BackgroundPanel panel = new BackgroundPanel(image); // 将panel添加到frame中 frame.add(panel); frame.setVisible(true); } } ```
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值