02-swing_window类

一, 顶层容器概述

    用Java进行图形编程时, 其组件 绘制在容器里
    这个容器就是顶层容器, 相当于一个窗口.
    顶层容器是进行图形编程的基础, 

    一切图形化的东西都必然 存在于 顶层容器中.


二, 顶层容器类

   可独立显示, 作为图形界面的最顶层窗口
    1) JFrame , 设计类似于Windows 系统中窗口形式的应用程序
    2) JDialog, 设计对话框, 类似于JFrame
    3) JApplet, 设计嵌入网页中的Java小程序

三, 实际开发图形界面

    如图:JFrame作为顶级窗口的层次图

      02-swing_window类_第1张图片

    顶层容器(JFrame)
        |-- 菜单组件
        |-- 内容面板(JPanel)
              |-- 基本组件(JButton)
    1) 顶层容器 -> JFrame
    2) 内容面板, 菜单组件
    3) 基本组件, 布局


四, 在顶层容器中添加组件

1, 添加的组件的种类

    A) 添加内容面板(JPanel)
    B) 添加基本组件
    注意: 不能直接将基本组件添加到顶级容器中,
          只能将基本组件添加到顶级容器中的中间容器. 

2, 添加方式     

    1) 获取jFrame的内容面板jPanel, 在jPanel上添加 基本组件
        ① JPanel jPanel = jFrame.getContentPane();
        ② jPanel.add( 基本组件 );
    2) 新建一个jPanel, 将基本组件添加到 jPanel里, 最后将jPanel放入jFrame
        ① JPanel jPanel = new JPanel();
        ② jPanel.add( 基本组件 );
        ③ jFrame.setContentPane( jPanel );

3, 举例

    在顶层容器中添加内容面板(中间容器)
import javax.swing.*;
/**
 * 在顶层容器中添加内容面板(中间容器)
 * 在内容面板上添加按钮(基本组件)
 */
public class AddBaseComponent
{
	public static void main(String[] args) 
	{	
		// 创建一个顶层容器类对象
		JFrame frame = new JFrame( "add content pane" );
		// 大小: 宽300, 高200
		frame.setSize(300, 200);
		// 点击 "X", 关闭 
		frame.setDefaultCloseOperation( JFrame.EXIT_ON_CLOSE );
		// 可见性
		frame.setVisible( true );
		
		// 创建一个中间容器类对象
		JPanel contentPane = new JPanel();
		// 将中间容器 放入 顶层容器, 作为内容面板
		frame.setContentPane( contentPane );
		
		// 在 内容面板中 添加 按钮
		contentPane.add( new JButton( "happy button" ) );
	}
}


4, 在顶层容器中添加菜单栏

import javax.swing.*;
/** 将创建好的菜单, 放置在顶层容器中 
 *  嵌入菜单条:		jFrame.setJMenuBar( jMenuBar )
 *	嵌入中间容器:	jFrame.setContentPane( jPanel )
 */
public class AddMenuToJFrame 
{
	public static void main(String[] args) 
	{
		// 顶层容器
		JFrame frame = new JFrame();
		// 尺寸
		frame.setSize( 300, 200 );
		// 关闭
		frame.setDefaultCloseOperation( JFrame.EXIT_ON_CLOSE );
		// 标题
		frame.setTitle( "学生信息管理系统" );
		
		// 菜单条 组件
		JMenuBar menubar = new JMenuBar();
		// 将该菜单条组件 添加进 顶层容器
		frame.setJMenuBar( menubar );

		// 菜单 组件
		JMenu fileMenu = new JMenu( "文件" );
		JMenu editMenu = new JMenu( "编辑" );
		JMenu viewMenu = new JMenu( "视图" );
		// 将菜单组件 添加到 菜单条 
		menubar.add( fileMenu );
		menubar.add( editMenu );
		menubar.add( viewMenu );

		// 菜单项 组件
		JMenuItem openItem = new JMenuItem( "打开" );
		JMenuItem saveItem = new JMenuItem( "保存" );
		JMenuItem printItem = new JMenuItem( "打印" );
		JMenuItem exitItem = new JMenuItem( "退出" );
		// 将菜单项 添加到 菜单
		fileMenu.add( openItem );
		fileMenu.add( saveItem );
		fileMenu.addSeparator();	// 分割线组件
		fileMenu.add( printItem );
		fileMenu.add( exitItem );
		
		// 内容面板
		JPanel contentPane = new JPanel();
		// 添加 按钮 到 内容面板
		contentPane.add( new JButton( "button" ) );
		// 将内容面板 添加到 顶层容器
		frame.setContentPane( contentPane );

		// 可见性
		// 注意, 可见性设置必须放最后, 否则不显示菜单条 
		frame.setVisible( true );
	}
}


你可能感兴趣的:(02-swing_window类)