2 回答
TA贡献1860条经验 获得超8个赞
做一个实例给你吧。这样做也可以的。
import java.awt.*;
import javax.swing.*;
public class Test extends JFrame{
JPanel jp=(JPanel)this.getContentPane();
public Test()
{
jp.setLayout(null);
JLabel jl=new JLabel("JLabel");
JButton jb=new JButton("Button");
jl.setBounds(new Rectangle(20,20,80,25));
jb.setBounds(new Rectangle(20,60,80,25));
jp.add(jl);
jp.add(jb);
}
public static void main(String[] args) {
Test frame=new Test();
frame.setResizable(false);
ImageIcon img = new ImageIcon("./images/backimage.jpg");//这是背景图片,注意这里是局部路劲在项目名下面的目录里,比如../项目名/images/...
JLabel imgLabel = new JLabel();//将背景图放在标签里。
imgLabel.setIcon(img);
frame.getLayeredPane().add(imgLabel, new Integer(Integer.MIN_VALUE));//注意这里是关键,将背景标签添加到jfram的LayeredPane面板里。
imgLabel.setBounds(0,0,img.getIconWidth(), img.getIconHeight());//设置背景标签的位置
Container cp=frame.getContentPane();
cp.setLayout(new BorderLayout());
((JPanel)cp).setOpaque(false); //注意这里,将内容面板设为透明。这样LayeredPane面板中的背景才能显示出来。
frame.setSize(1024,544);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setVisible(true);
}
}
TA贡献2065条经验 获得超13个赞
JTextField jl=new JTextField("HAVE A QUESTION");
jl.setLayout(null);
jl.setBounds(0,0, 200, 30);
c.add(jl);
c.repaint();
c是layout等于null。
添加回答
举报