wordpress搭建个人网站费用,新零售六大模式,好网站推荐的网站,做cpa建什么网站好首先还是要了解框架JFrame中的层次结构。JFrame中的层次分布及相对关系是:最底层是#xff1a;JRootPane#xff1b;第二层是#xff1a;JlayerPane#xff1b;最上层就是ContentPane,也正是我们常说的内容面板。所以一般我们拖放的控件就是在ContentPane层上。有了这些常识…首先还是要了解框架JFrame中的层次结构。JFrame中的层次分布及相对关系是:最底层是JRootPane第二层是JlayerPane最上层就是ContentPane,也正是我们常说的内容面板。所以一般我们拖放的控件就是在ContentPane层上。有了这些常识后我们就可以随意设计背景了。在这里笔者提供两种方法为一个frame设置一张背景图片方法一原理我们把图片放置在第二层JlayerPane容器上然后让最上层的ContentPane透明这样就实现了背景的设置。(当然把图片放置最低层让上面两层透明也是可以的) 代码如下package NewPackage;import java.awt.Container;import java.awt.FlowLayout;import javax.swing.ImageIcon;import javax.swing.JFrame;import javax.swing.JLabel;import javax.swing.JPanel;public class Demo2 {public static void main(String[] args) {JFrame f1new JFrame(插入背景图像);f1.setBounds(400, 200, 500, 300);f1.setVisible(true);f1.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);ImageIcon imgnew ImageIcon(D:\\cat.png);JLabel bgnew JLabel(img);f1.getLayeredPane().add(bg, new Integer(Integer.MIN_VALUE));bg.setBounds(0, 0, img.getIconWidth(), img.getIconHeight());JPanel jp (JPanel)f1.getContentPane();//强制类型转换//Container contain f1.getContentPane();//((JPanel) contain).setOpaque(false); //jp.setOpaque(false);jp.setLayout(new FlowLayout());//contain.setLayout(new FlowLayout());//contain.add(bg);jp.add(bg);}}方法二原理我们直接在最上层容器内重写paintComponent(Graphics g)方法在容器中画一张图片。(这种方法很直观原理很简单)。代码如下package NewPackage;import java.awt.Graphics;import java.awt.Image;import javax.swing.ImageIcon;import javax.swing.JButton;import javax.swing.JFrame;import javax.swing.JPanel;public class Demo3 extends JFrame{//创建一个容器JPanel jp;//创建背景面板。BackgroundPanel bgp;//创建一个按钮用来证明我们的确是创建了背景图片而不是一张图片。JButton jb;public static void main(String[] args){new Demo3();}public Demo3(){//不采用任何布局方式。jp(JPanel)this.getContentPane();this.setLayout(null);//在这里随便找一张400*300的照片既可以看到测试结果。ImageIcon imgnew ImageIcon(D:\\cat.png);bgpnew BackgroundPanel(img.getImage());bgp.setBounds(0,0,img.getIconWidth(),img.getIconHeight());//创建按钮jbnew JButton(测试按钮);bgp.add(jb);jp.add(bgp);this.setBounds(400, 200, 500, 300);this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);this.setVisible(true);}}class BackgroundPanel extends JPanel{Image im;public BackgroundPanel(Image im){this.imim;this.setOpaque(true);}//Draw the back ground.public void paintComponent(Graphics g){super.paintComponents(g);g.drawImage(im,0,0,this.getWidth(),this.getHeight(),this);}}程序运行效果如下