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

1、  将组件添加到JFrame中

方式之一:

frame.getContentPane().add(childComponent)

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

方式之二:

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

Jpanel contentPane=new Jpanel( );

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

frame.setContentPane(contentPane);

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

2、 JPanel的使用

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

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

// 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);

    }

}

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

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

    1.  将组件添加到JFrame中 方式之一: frame.getContentPane().add(childComponent) 用getContentPane()方法获得JFrame的内容面板, ...

  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图形化界面设计——布局管理器之CardLayout(卡片布局)

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

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

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

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

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

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

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

随机推荐

  1. const 与 指针

    #include <iostream> using namespace std; int main() { // 第一种.使指针不能改动对象的值.注:此时指针能够指向另外的对象 int i ...

  2. 网页图表控件Highcharts选项配置参数

    Highcharts提供大量的选项配置参数,您可以轻松定制符合用户要求的图表,目前官网只提供英文版的开发配置说明文档,而中文版的文档网上甚少,且零散不全.这里,我把Highcharts常用的最核心的参 ...

  3. 正则表达式:日期,电话,邮箱等常用字符串;js中日期的带下的比较,获取不同格式的日期

    一.日期 (1)首先需要验证年份,显然,年份范围为 0001 - 9999,匹配YYYY的正则表达式为: [0-9]{3}[1-9]|[0-9]{2}[1-9][0-9]{1}|[0-9]{1}[1- ...

  4. Linux内核分析:实验八--Linux进程调度与切换

    刘畅 原创作品转载请注明出处 <Linux内核分析>MOOC课程http://mooc.study.163.com/course/USTC-1000029000 概述 这篇文章主要分析Li ...

  5. 【转贴】J2EE中的13种技术规范

    J2EE平台由一整套服务(Services).应用程序接口(APIs)和协议构成,它对开发基于Web的多层应用提供了功能支持,下面对J2EE中的13种技术规范进行简单的描述(限于篇幅,这里只能进行简单 ...

  6. 盘点SEO和SEM的优劣势

    如果你不知如何分配你的搜索营销预算,或是和客户提案的时候不知道怎么样去解释搜索营销产品(SEO和SEM)的区别,又或者不了解网站/企业在当前阶段应该优先施行哪种搜索营销策略,本文可以帮助你深入了解SE ...

  7. cisco asa5510 配置

    anyconnect 查看vpn链接 ASA版本8.4(7)    anyconnect版本3.1  亲测sh vpn-sessiondb anyconnect  查看登录用户详情sh vpn-ses ...

  8. php_memcahed telnet远程操作方法

    一.存储命令 存储命令的格式: <command name> <key> <flags> <exptime> <bytes> <dat ...

  9. 教程:VS2010 之TFS入门指南(转载)

    [原文发表地址] Tutorial: Getting Started with TFS in VS2010 [原文发表时间] Wednesday, October 21, 2009 1:00 PM 本 ...

  10. Linux下双网卡-双外网网关-电信联通双线主机设置

    1.实现:通过运营商提供的智能DNS,把电信用户访问时,数据进电信的网卡,出来时也从电信的网关出来,访问联通时,从联通网卡时,联通网卡出.这样速度就会快,实现双线主机的功能. 2.网卡信息:电信IP( ...