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表单文本域验证

    1.验证是否为正确的邮箱地址 注意:本方法只能验证以@a.b结尾的邮箱地址,对于三级及三级以上的邮箱,比如@iie.ac.cn结尾的会出现错误 function isEmail(o){ var reg ...

  2. hadoop笔记之Hive的数据存储(内部表)

    Hive的数据存储(内部表) Hive的数据存储(内部表) 基于HDFS 可使用hadoop给我们提供的web管理工具查看数据.打开管理工具localhost:9000–>Utilities下的 ...

  3. Python核心编程笔记----注释

    python 中注释有两种 第一种,文档注释 第二种,一般的注释 下面是例子: class MyClass: '这个是文档注释' def __repr__(self): return "re ...

  4. U盘常见故障及检修

    一般U盘故障分为软故障和硬故障,其中以软故障最为常见.  软故障主要是指U盘有坏块,从而导致U盘能被计算机识别,但没有盘符出现,或者有盘符出现,但当打开U盘时却提示要进行格式化,而格式化又不能成功.前 ...

  5. iOS 4.2 SDK安装

    iOS 4.2 SDK安装 ◆系统版本:10.6.5 ◆硬件配置: ◆10G空间,3.5G内存,显卡:GMA950 Xcode 3.2.5和iOS 4.2 SDK下载:http://developer ...

  6. chrome 下的 proxy 插件安装

    Install “Proxy SwitchyOmega” extensions for chrome.

  7. C++与AS3

    ActionScript 3(简称AS3)与 c++ 都是面向对象的编程(OOP)语言,都具有OOP的特性如封装.继承.多态等.二者在语法上有许多相似之处,基本上学过C++之后再学习AS3感觉并不是特 ...

  8. ListView分割线

    在开发中遇到需要ListView 中每一个条目后面都有个分隔线,但是总是发现最后一个条目后面没有分隔符,后来查到原因,是因为ListView的layout_height=“wrap_content” ...

  9. cocos2d-x 3.0rc2 对于每个包执行情况的重要平台 (超级方便)

    首先,你需要下载三个文件:每间 android-ndk android-sdk ant 下载位置可以随意:由于3.0rc2执行setup.py  自己主动搜索这三个文件 win32cmd以下: (1) ...

  10. Android入门——UI(7)——Fragment

    先上fragment静态加载的代码 <?xml version="1.0" encoding="utf-8"?> <LinearLayout ...