新手提问:java JFrame.add()与JFrame.setcontentPane()区别

package swt;
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
public class Demo_13 extends JFrame{
JPanel pane1,pane2,pane3;
JButton button;
JLabel label01,label02;
JTextField jxt01,jxt02;
public static void main(String[] args){
new Demo_13();
}
public Demo_13(){
JPanel pane1=new JPanel();
JPanel pane2=new JPanel();
JPanel pane3=new JPanel();
JButton button=new JButton("登录");
JLabel label01=new JLabel("姓名");
JLabel label02=new JLabel("密码");
JTextField jxt01=new JTextField(10);
JTextField jxt02=new JTextField(10);
pane1.add(label01);
pane1.add(jxt01);
pane2.add(label02);
pane2.add(jxt02);
pane3.add(button);
this.add(pane1);
this.add(pane2);
this.add(pane3);
//this.setContentPane(pane1);
//this.setContentPane(pane2);
//this.setContentPane(pane3);
this.setLayout(new GridLayout(3,1));
this.setTitle("学生管理系统");
this.setSize(300, 300);
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
this.setVisible(true);

}
}
-----------------------------------
当我用
this.setContentPane(pane1);
this.setContentPane(pane2);
this.setContentPane(pane3);
替换this.add()方法时候运行结果如图:

用this.add()方法运行结果正常

add()与setContentPane()区别在哪里?

第1个回答  推荐于2018-02-28
add() 是添加到JFrame的容器里面

setContentPane() 是替换JFrame的容器本回答被提问者和网友采纳

...JFrame.add()与JFrame.setcontentPane()区别
add() 是添加到JFrame的容器里面 setContentPane() 是替换JFrame的容器

java 添加JButton按钮在JFrame上面为什么一定要在方法里面添加_百度...
JFrame可以理解成一个容器,既然是容器就可以装东西。JButton就属于容器里面的东西,比如说是鱼。如果鱼离开了水,是无法生存的,这就可以类比JButtion必须放到JFrame上面才能进行添加。 JAVA Swing中JFrame代表容易,JPane代表面板或者画布,可以在上面添加按钮、对话框、输入框等。 本回答由电脑网络分类达人 董辉推荐 举报...

java编译时提示:使用或覆盖了已过时的API
这位朋友,你的程序中这一句中Container Pane = frame.getContentPane(); Pone的P是大写,跑到这pane.add(hello); p就变小写了,你注意一下,复制的代码还会复制错。好,现在进入正题。为什么提示你 使用或覆盖了已过时的API呢。我将你的代码在我的软件Eclipse中运行了,编译运行没有错。但有一点我需要说明,在Eclipse...

setDefaultCloseOperation是什么方法?
可以起到关闭程序与停止dos运行的目的.你在程序中在试着调用这个方法,就会看出效果。可能你没注意吧 frame.setDefaultCloseOption(JFrame.EXIT_ON_CLOSE)你处理这个,不但会关闭程序,也会关闭dos中的运行.你在体验下。呵呵...

急!求教Java高手!以下是我的Java代码,我在注释中写明了我的想法,和问题...
cp = getContentPane();setSize(400, 400);setLocation(640, 400);setTitle("文件自动批量命名工具");setBackground(Color.blue);setLayout(new GridLayout(4, 2));setVisible(true);cp.add(new JLabel("请输入您要批量命名的文件\\n所在文件夹路径"));cp.add(jf1);cp.add(new JLabel("请...

java 如何载入本机图片并实现点击获得任意点坐标
import java.awt.*;import java.awt.event.*;import javax.swing.border.Border;\/ 我想建立个界面,可以加载本机中图片。加载后可以通过鼠标点击获得图片上任意点坐标。提问者: sunny929929 - 试用期 一级 \/ public class MyPicture extends JFrame implements MouseListener{ private JLabel tipLabel;\/...

相似回答