网上有许多的关于Java 界面的添加背景图片的方法,大部分都是使用JLabel的方法,对于会图片到jpanel上,大部分都说的不对,因为图片将组件覆盖了。这个饿时因为使用的方法不对导致的,下面是个人测试的,是正确的。
import javax.swing.*; import java.awt.*; public class ImageDemo2 { public ImageDemo2(){ JFrame frame=new JFrame(); JPanel panel=new JPanel(){ //网上使用的paint()方法,这个图片会将组件掩盖掉的 public void paintComponent(Graphics g){ super.paintComponent(g); Image im=Toolkit.getDefaultToolkit().getImage("images/1111.jpg"); g.drawImage(im,0,0,null); } }; //JPanel j=(JPanel)frame.getContentPane(); //j.setOpaque(false); JTextField jta=new JTextField(10); JButton jb=new JButton("确定"); JButton jb2=new JButton("重置"); //panel.setOpaque(false); panel.add(jta); panel.add(jb); panel.add(jb2); frame.add(panel); frame.setSize(300,300); frame.setVisible(true); } public static void main(String[] args) { new ImageDemo2(); } }
效果图片: