1、  将组件添加到JFrame中

方式之一:

frame.getContentPane().add(childComponent)

用getContentPane()方法获得JFrame的内容面板,再对其加入组件,一般只使用该方式添加组件。

向JFrame中添加组件的两种方式之二:

把组件添加到Jpanel之类的中间容器中,用setContentPane()方法把该容器置为JFrame的内容面板:

Jpanel contentPane=new Jpanel( );

……//把其它组件添加到Jpanel中;

frame.setContentPane(contentPane);

注意:用setContentPane()方法不允许设置窗体布局,其只显示最后添加的组件,且该组件将布满整个窗口,而不管原先组件的大小设置,相当于只允许添加一次组件作为JFrame的内容面板。所以一般不实用该方法进行添加组件(可能是我不知道吧)。

 

2、  JPanel的使用

JPanel是java图形化界面中最常使用的容器。

实例:在窗体中添加一个蓝色的面板

// PanelDemo.java

import javax.swing.*;

import java.awt.*;  //引入AWT包,因为要使用到颜色类

class PanelDemo {

public static void main(String[] args)throws Exception

{   JFrame f=new JFrame("第一个Java窗口");

f.setSize(300,200);

f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

f.setVisible(true);

f.setResizable(false);

f.setLocationRelativeTo(null) ;

f.setLayout(null);  //设置窗体布局为空布局

JPanel p=new JPanel();             //实例化一个面板

//设置面板背景色为蓝色,如果不引入AWT包,程序将出错,可以试试看

p.setBackground(Color.BLUE);

p.setSize(100,100);          //设置面板对象大小

f.getContentPane().add(p);     //将面板添加到窗体中

//如果使用下面添加面板的方法,面板将布满整个窗口,可以试试看

//f. setContentPane(p);

}

}

中间容器可以嵌套中间容器

 

实例2:面板的嵌套

import java.awt.*;

import javax.swing.*;

class  TwoPanel extends JFrame {

public TwoPanel( String title){

super(title);

}

public static void main(String args[]) {

TwoPanel fr=new TwoPanel("Two Panel测试");

JPanel pan1 = new JPanel();

JPanel pan2 = new JPanel();

fr.setLayout(null);

fr.getContentPane().setBackground(Color.green);  //设置窗口的颜色

fr.setSize(250,250);

pan1.setLayout(null);                  //设置面板为空布局

pan1.setBackground(Color.red);

pan1.setSize(150,150);

pan2.setBackground(Color.yellow);

pan2.setSize(50,50);

pan1.add(pan2);   //将面板pan2添加到pan1中

//将pan1添加到窗体中,因为pan2被添加到pan1中,所以pan1、pan2都被显示在窗体中

fr.getContentPane().add(pan1);

fr.setVisible(true);

fr.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

}

}

 

Java图形化界面设计——中间容器(Jpanel)的更多相关文章

  1. 02 Java图形化界面设计——中间容器(Jpanel)

    上一篇讲解了Jframe顶层容器,例子中生成了一个空的窗体,在实际编程过程中,一般很少将文本框.按钮等组件直接放在顶层容器中进行布局,大多数时候是通过布局管理器结合中间容器对组件进行布局设置. 1.  ...

  2. 转: 二十八、Java图形化界面设计——中间容器(Jpanel)

    http://blog.csdn.net/liujun13579/article/details/7762835 上一篇讲解了Jframe顶层容器,例子中生成了一个空的窗体,在实际编程过程中,一般很少 ...

  3. 转:二十七、Java图形化界面设计——容器(JFrame)

    转:http://blog.csdn.net/liujun13579/article/details/7756729 二十七.Java图形化界面设计——容器(JFrame) 程序是为了方便用户使用的, ...

  4. 二十七、Java图形化界面设计——容器(JFrame)

    摘自http://blog.csdn.net/liujun13579/article/details/7756729 二十七.Java图形化界面设计--容器(JFrame) 程序是为了方便用户使用的, ...

  5. Java图形化界面设计——容器(JFrame)

    Java图形化界面设计——容器(JFrame) 程序是为了方便用户使用的,因此实现图形化界面的程序编写是所有编程语言发展的必然趋势,在命令提示符下运行的程序可以让我们了解java程序的基本知识体系结构 ...

  6. 三十一、Java图形化界面设计——布局管理器之GridLayout(网格布局)

    摘自http://blog.csdn.net/liujun13579/article/details/7772491 三十一.Java图形化界面设计--布局管理器之GridLayout(网格布局) 网 ...

  7. 三十二、Java图形化界面设计——布局管理器之CardLayout(卡片布局)

    摘自 http://blog.csdn.net/liujun13579/article/details/7773945 三十二.Java图形化界面设计--布局管理器之CardLayout(卡片布局) ...

  8. 三十三、Java图形化界面设计——布局管理器之null布局(空布局)

    摘自http://blog.csdn.net/liujun13579/article/details/7774267 三十三.Java图形化界面设计--布局管理器之null布局(空布局) 一般容器都有 ...

  9. Java 图形化界面设计(GUI)实战练习(代码)

    关于Java图形化界面设计,基础知识网上可搜,下面简单介绍一下重点概念,然后就由浅入深代码实例. 程序是为了方便用户使用的,Java引入图形化界面编程. 1.JFrame 是容器类 2.AWT 是抽象 ...

随机推荐

  1. JS的匿名函数和递归应用

    今天有项目需要用到JS的递归,开始按照php的实现方法,发现不行,后来只能使用arguments.callee. 简单的例子,如下 var act = 'if(num <= 1){return ...

  2. javaScript的2种变量范围有什么不同

    1.javascript怎样选中一个checkbox,怎样设置它无效? document.all.cb1[0].disabled = true;   2.js中的3种弹出式消息提醒(警告窗口,确认窗口 ...

  3. windows如何安装和配置mongodb

    https://docs.mongodb.com/v3.0/tutorial/install-mongodb-on-windows/

  4. Stream与byte转换

    将 Stream 转成 byte[] /// <summary> /// 将 Stream 转成 byte[] /// </summary> public byte[] Str ...

  5. 深入GDI图像显示

    摘  要:本文首先给出了一种结合了DIB和DDB两种位图优点的图像显示方法,其次对GDI函数的高级应用,如透明位图显示.图像旋转显示.图像镜像显示进行了研究. 关键词:GDI图像显示,特殊GDI函数的 ...

  6. Android Studio设置自动编译工程

  7. Unix/Linux环境C编程入门教程(1) Solaris 11 64bit环境搭建

    Unix/Linux版本众多,我们推荐Unix/Linux初学者选用几款典型的Unix/Linux操作系统进行学习. 本文就带大家来安装Solaris 11 64位并且配置好C/C++开发环境 本文所 ...

  8. Http静态资源的缓存

    最近一段时间一直在研究页面缓存和压缩方面的东西,由于公司服务器使用的是iis6.0,很多性能方面的优化都不支持.所以,就开始尝试着自己写个简单的处理程序. 为了减少服务器带宽的需求,我们要减少客户端与 ...

  9. uva 12171 hdu 1771 Sculpture

    //这题从十一点开始写了四十分钟 然后查错一小时+ 要吐了 这题题意是给很多矩形的左下角(x,y,z最小的那个角)和三边的长(不是x,y,z最大的那个角T-T),为组成图形的面积与表面积(包在内部的之 ...

  10. HDU 3123-GCC(递推)

    GCC Time Limit: 1000/1000 MS (Java/Others)    Memory Limit: 131072/131072 K (Java/Others) Total Subm ...