JFrame背景图添加(不影响按钮或者其它组件)

package Frame;
import java.awt.Image;
import java.awt.Toolkit;
import javax.swing.ImageIcon;
import javax.swing.JFrame;    
import javax.swing.JLabel;
class MyFramex extends JFrame{            //继承JFrame类,对其进行扩展.
    public MyFramex(){                                   
        //从系统中加载文件,图片位于该文件工程目录之下,否则应该写上绝对路经
        Image img=Toolkit.getDefaultToolkit().getImage(this.getClass().getResource("/1.jpg"));
        //每一个frame都包含一个ContentPane .它是Frame底层的面板(注意面板的最初的布局管理器是流式布局管理器,有需要的应该重新设置其他(或者空)),我们把一个以图片填充的标签放在上面作为窗体北京图片
        this.getContentPane().add(new JLabel(new ImageIcon(img)));
        //LayeredPane 处于ContentPanel上层,可以给她的上面添加组件(就像给JPanel上添加组建一样)
        this.getLayeredPane().setLayout(null);//讲Layeredpane布局管理器设置为空,(因此要放在它上面的组建应该设置好位置及大小否则无法显示)
        this.getLayeredPane().setOpaque(false);//设置Layeredpane的不透明为false,即设置为透明.(因此背景中的图片才能显示出来)
        JLabel myblog=new JLabel("SapphireStart");
        myblog.setBounds(150,80,300,200);
        this.getLayeredPane().add(myblog);
        this.setBounds(100, 100, 640, 480);
        this.setDefaultCloseOperation(EXIT_ON_CLOSE);
        this.setVisible(true);
    }
}
public class BackImage {
    public static void main(String[] args){
        new MyFramex();
    }
}


  • 1
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
在Java中,可以使用JLabel和ImageIcon组合来实现在JFrame面板插入背景图片并显示组件的效果。具体步骤如下: 1. 创建一个JLabel对象,并将其设置为透明。 2. 创建一个ImageIcon对象,将背景图片加载到该对象中。 3. 将ImageIcon对象设置为JLabel的图标。 4. 将JLabel添加JFrame面板中,并将其设置JFrame面板的布局管理器的背景。 5. 向JLabel中添加其他组件,如按钮、文本框等。 下面是一个简单的示例代码: ``` import java.awt.BorderLayout; import java.awt.Dimension; import java.awt.FlowLayout; import java.awt.Image; import java.awt.Toolkit; import javax.swing.ImageIcon; import javax.swing.JButton; import javax.swing.JFrame; import javax.swing.JLabel; import javax.swing.JPanel; public class BackgroundImageExample extends JFrame { private static final long serialVersionUID = 1L; public BackgroundImageExample() { setTitle("Background Image Example"); setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); setSize(500, 500); // 创建一个JLabel对象,并将其设置为透明 JLabel background = new JLabel(); background.setOpaque(false); // 创建一个ImageIcon对象,将背景图片加载到该对象中 ImageIcon backgroundImage = new ImageIcon("background.jpg"); Image image = backgroundImage.getImage().getScaledInstance(getWidth(), getHeight(), Image.SCALE_SMOOTH); backgroundImage = new ImageIcon(image); // 将ImageIcon对象设置为JLabel的图标 background.setIcon(backgroundImage); // 创建一个JPanel对象,并将其设置JFrame的内容面板 JPanel contentPane = new JPanel(); contentPane.setLayout(new BorderLayout()); setContentPane(contentPane); // 将JLabel添加JFrame面板中,并将其设置JFrame面板的布局管理器的背景 contentPane.add(background, BorderLayout.CENTER); // 向JLabel中添加其他组件,如按钮、文本框等 JPanel buttonPanel = new JPanel(); buttonPanel.setLayout(new FlowLayout()); JButton button1 = new JButton("Button 1"); JButton button2 = new JButton("Button 2"); buttonPanel.add(button1); buttonPanel.add(button2); background.setLayout(new BorderLayout()); background.add(buttonPanel, BorderLayout.SOUTH); // 设置JFrame居中显示 Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize(); setLocation((screenSize.width - getWidth()) / 2, (screenSize.height - getHeight()) / 2); } public static void main(String[] args) { BackgroundImageExample example = new BackgroundImageExample(); example.setVisible(true); } } ``` 在上面的代码中,我们创建了一个JLabel对象background,并将其设置为透明。然后创建了一个ImageIcon对象backgroundImage,将背景图片加载到该对象中,并将其设置为JLabel的图标。接着将JLabel添加JFrame面板中,并将其设置JFrame面板的布局管理器的背景。最后向JLabel中添加了一个按钮面板,并将其添加到JLabel的底部。 需要注意的是,这里使用了getScaledInstance方法对图片进行了缩放,以适应JFrame的大小。另外,为了使JFrame居中显示,我们使用了Toolkit类获取屏幕大小,并将JFrame的位置设置为居中。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值