java 设置JPanelyou 背景图片 并且上层JPanel 不会覆盖下层JPanel背景图片

import java.awt.*;
import javax.swing.*;

public class backpic  extends JPanel {
String strpic = new String();//继承这个类的时候 传一个图片位置的字符串
 public backpic(String strpic) {
 this.strpic = strpic;  
 }
public void paintComponent(Graphics g)  { //重写JPanel的绘制背景方法
//
  int x = 0, y = 0;
  ImageIcon icon = new ImageIcon(strpic);//
  g.drawImage(icon.getImage(), x, y, getSize().width, getSize().height, this);// 图片会自动缩放
   // g.drawImage(icon.getImage(), x, y,this);//图片不会自动缩放
 }

}


public class test extends backpic{


JPanel pa1 = new backpic("");  //实例化一个backpic对象 传参数空字符串 背景就是透明的

JPanel pa2 = new backpic("");

test(){

super("1.jpg");

add(pa1);add(pa2);//将这两个面板加到有背景的面板上面 不会覆盖它的背景

}

}


  • 5
    点赞
  • 23
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 这个问题应该是询问如何在Java Swing添加JPanel背景图片。可以使用setContentPane()方法将一个JLabel包装成JPanel并将其作为容器的内容,然后在这个JLabel上设置背景图片。具体代码如下: ``` JPanel panel = new JPanel(); ImageIcon icon = new ImageIcon("path/to/image.jpg"); JLabel label = new JLabel(icon); panel.setOpaque(false); panel.setContentPane(label); ``` 其,"path/to/image.jpg"表示背景图片的路径。设置setOpaque(false)是为了使JPanel透明,在此之上的JLabel才能显示出背景图片。 ### 回答2: Java Swing是一种GUI工具包,它是由SUN公司推出的一种用于创建窗体应用程序的Java类库。Swing提供了丰富的GUI组件和容器,包括按钮、标签、文本框、表格、菜单、窗口等等,可以使得我们快速地构建和开发交互性强的GUI应用程序。 在Java SwingJPanel是常用的一种容器组件,它可以作为Swing容器的一部分,来实现面板的操作和管理。背景图片JPanel的常见需求,可以通过以下步骤来实现: 1. 首先需要准备一个背景图片,可以使用ImageIcon来加载图片: ImageIcon icon = new ImageIcon("背景图片路径"); 2. 创建一个自定义的JPanel类并继承JPanel类: public class MyPanel extends JPanel { private ImageIcon icon; public MyPanel() { icon = new ImageIcon("背景图片路径"); } } 3. 重写paintComponent()方法,从而使用背景图片绘制面板: protected void paintComponent(Graphics g) { super.paintComponent(g); g.drawImage(icon.getImage(), 0, 0, this.getWidth(), this.getHeight(), this); } 4. 最后,在需要使用该面板的地方,实例化该自定义JPanel添加到容器即可: MyPanel panel = new MyPanel(); frame.add(panel); 以上就是实现Java Swing JPanel背景图片的基本步骤。需要注意的是,背景图片的大小应该与面板的大小尽量匹配,否则可能会出现拉伸或变形的情况。还需要保证图片的路径正确并且可以访问。 ### 回答3: Java Swing JPanel是一个非常实用的组件,它可以用来创建图形用户界面(GUI)的面板,而背景图片则是增强面板美观性的一种方式。 在使用JPanel时,我们可以通过设置它的背景色来美化它的外观,但是如果我们想要使用一张图片作为面板的背景,该怎么做呢?这时就需要使用Swing提供的setImageIcon()方法或setBackgound()方法来实现。 1、使用setImageIcon()方法设置背景图片 可以通过创建一个ImageIcon对象来设置背景图片,然后将其通过setImageIcon()方法添加JPanel对象。 ```java ImageIcon icon = new ImageIcon("picture.jpg"); // 创建ImageIcon JPanel panel = new JPanel(); // 创建面板 panel.setLayout(null); // 设置面板的布局模式 JLabel label = new JLabel(icon); // 创建JLabel label.setBounds(0, 0, icon.getIconWidth(), icon.getIconHeight()); // 设置label的位置和大小 panel.add(label); // 添加label到面板 ``` 在这里,我们需要注意的是,JPanel需要使用null布局,这样我们才能自由地控制组件的位置和大小。label需要使用setIcon()方法来设置Icon的值,而不是setText()方法。 2、使用setBackgound()方法设置背景图片Java也可以使用setBackgound()方法来实现设置面板背景图片的效果,不过需要注意的是,这种方式只适用于设置背景颜色相同的情况下,否则会出现不同部分颜色分明,而且不好看的情况。 ```java JPanel panel = new JPanel(); panel.setLayout(null); panel.setOpaque(false); // 设置面板为透明 JLabel label = new JLabel(); label.setIcon(new ImageIcon("picture.jpg")); // 设置label的Icon label.setBounds(0, 0, getWidth(), getHeight()); // 设置label的位置和大小 panel.add(label); ``` 在这个例子,我们使用了setOpaque(false)方法来设置面板为透明。然后创建了一个JLabel对象,将它的Bounds属性设置为整个面板的大小,然后通过setIcon()方法设置图片。 总结一下,设置JPanel背景图片无论是通过setImageIcon()还是setBackgound()方法都是可以轻松实现的。其,使用setImageIcon()方法可以更灵活地控制组件的位置和大小,但是在设置背景颜色不同的情况下会有所不妥。而使用setBackgound()方法则能够更简单地实现功能,但需要注意背景颜色的不同会影响到整体效果。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值