顶层容器值得是容纳其他容器的容器组件,包括JFrame类,JWindows类,JDialog类,JApplet等。
Swing中的顶层容器类
Swing提供三个顶层容器类:JFrame,JDialog和JApplet。当使用这些容器类时,请谨记以下原则。
要在屏幕上显示,每个GUI组件必须是一个“容器层级”的一部分。
每个GUI组件只能属于一个容器,如果组件已经在一个容器当中,而又试图将它添加到另一个容器当中去,那么应该从第一个容器中移除该组件,然后添加到两一个容器去。
各种可视化组件不直接放到顶层容器中去,而是放在容器的内容面板中。
可以选择添加一个菜单栏到顶层容器中,菜单栏应该按惯例位于顶层容器中,但必须位于内容面板之外。
Swing中还有一个命名为JInternalFrame的内部窗体,它模仿JFrame,但实际上内部窗体并不是真正的顶层容器。
下面我们创建一个带有菜单栏和内容模板的窗体:

import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
//TopLevelDemo.java不需要其他文件

public class TopLevelDemo {
//创建一个GUI界面并显示。处于线程安全的考虑,应该从事件分发线程调用此方法
private static void createAndShowGUI(){
//创建并设置窗体
JFrame frame=new JFrame("TopLevelDemo");
//创建带有标题的窗体对象
//设置当关闭窗体时自动退出程序
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
//创建一个菜单栏,将其背景设为绿色。
JMenuBar greenMenuBar =new JMenuBar();
greenMenuBar.setOpaque(true);//将菜单背景设置为不透明
//设置菜单栏背景色
greenMenuBar.setBackground(new Color(154,165,107));
//设置菜单栏首选大小
greenMenuBar.setPreferredSize(new Dimension(200,20));
//创建一个黄色的标签并将其放入内容模板中
JLabel yellowLabel=new JLabel();//创建一个标签对象
yellowLabel.setOpaque(true);//将标签背景设为不透明
//设置标签背景颜色
yellowLabel.setBackground(new Color(248,210,101));
//设置标签首选大小
yellowLabel.setPreferredSize(new Dimension(200,180));
//设置菜单栏并将标签添加到内容模板上
frame.setJMenuBar(greenMenuBar);//将菜单栏添加到窗体上
//向窗体的内容模板添加标签
frame.getContentPane().add(yellowLabel,BorderLayout.CENTER);
//显示窗体
frame.pack();
frame.setVisible(true);
}
public static void main(String []args){
//为事件分发线程预定一个工作,创建显示本程序的GUI
javax.swing.SwingUtilities.invokeLater(new Runnable(){
public void run(){
createAndShowGUI();
}
});
}

}

虽然该示例程序在一个独立的应用程序中使用JFrame,但是同样的原理也适用于Applet和JDialog

Swing 顶层容器的更多相关文章

  1. Swing常用容器

    3.Swing(AWT的子类) 3.1窗口.面板 public class myJFrame extends JFrame { //JFrame是一个顶级窗口 public myJFrame() { ...

  2. Swing 刷新容器

    JPanel pchks = new JPanel();// 容器刷新(重新layout所有空间)pchks.validate();// 容器重绘(当容器内的东西由多变少时,防止多出来的部分没有清楚) ...

  3. [UE4]子控件Child Widget顶层容器选择

    如果父级容器是Canvas,则可以直接设置尺寸.放到其他widget的时候也会保持设定好的尺寸(而不管父容器是什么类型).

  4. JavaSE-26 Swing

    学习要点 关于Swing Swing容器组件 Swing布局管理器 Swing组件 Swing菜单组件 关于Swing Swing和AWT都是java开发图形用户界面的工具包. AWT:早期Java版 ...

  5. Java快速入门-03-小知识汇总篇(全)

    Java快速入门-03-小知识汇总篇(全) 前两篇介绍了JAVA入门的一系小知识,本篇介绍一些比较偏的,说不定什么时候会用到,有用记得 Mark 一下 快键键 常用快捷键(熟记) 快捷键 快捷键作用 ...

  6. java游戏开发之基础

    © 版权声明:本文为博主原创文章,转载请注明出处 游戏图形界面开发基础 AWT:(Abstract Window Toolkit,抽象窗口工具集) AWT中包含图形界面编程的基本类库,是Java语言G ...

  7. Swing布局管理器介绍

    创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 .作者信息和本声明.否则将追究法律责任.http://zhangjunhd.blog.51cto.com/113473/128174 当选 ...

  8. Swing学习笔记1-----Swing组件类的层次

    1.  从结构上划分 Swing 组件类分为两种,一种是JComponent类,一种是Windows类.其中windows类包含的是一些可以独立显示的组件,而JComponent类包含的是不可以独立显 ...

  9. Java Swing 第01记 Hello Word

    首先来一个Java Swing的HelloWord程序. package cn.java.swing.chapter03; import javax.swing.JButton; import jav ...

随机推荐

  1. python多线程使用

    内容链接: http://www.liaoxuefeng.com/wiki/001374738125095c955c1e6d8bb493182103fac9270762a000/00138683236 ...

  2. JavaScript 数组详解(转)

    在程序语言中数组的重要性不言而喻,JavaScript中数组也是最常使用的对象之一,数组是值的有序集合,由于弱类型的原因,JavaScript中数组十分灵活.强大,不像是Java等强类型高级语言数组只 ...

  3. 字符串复制char *strcpy(char* dest, const char *src);

    ⒈strcpy的实现代码 char * strcpy(char * strDest,const char * strSrc) { if ((NULL==strDest) || (NULL==strSr ...

  4. json 数组转换为js数组

    $(function(){ var json = '[{"id":"1","tagName":"apple"},{&qu ...

  5. Java正常关闭资源的方式

    在实际开发中,经常需要在程序中打开一些物理资源,如数据库连接.网络连接.磁盘文件等,打开这些物理资源之后必须显式关闭,否则将会引起资源泄漏. JVM的垃圾回收机制不会回收这些资源,垃圾回收机制属于Ja ...

  6. Android轻量缓存框架--ASimpleCache

    [转] 大神真面目 稀土掘金,这是一个针对技术开发者的一个应用,你可以在掘金上获取最新最优质的技术干货,不仅仅是Android知识.前端.后端以至于产品和设计都有涉猎,想成为全栈工程师的朋友不要错过! ...

  7. java Direct Buffer

    public static ByteBuffer allocate (int capacity)       //性能低于下面的Direct,因为是把内存建立在JVM堆上,容易被GC回收,可能需要多次 ...

  8. [troubleshoot][archlinux][X] plasma(KDE) 窗口滚动刷新冻结(约延迟10s)(已解决,root cause不明,无法再次复现)

    现象: konsole,setting等plasma的系统应用反应缓慢,在滚动条滚动时,尤为明显. 触发条件: 并不是十分明确的系统滚动升级(Syu)后,产生. 现象收集: 可疑的dmesg [ :: ...

  9. Linux core 文件介绍

    Linux core 文件介绍 http://www.cnblogs.com/dongzhiquan/archive/2012/01/20/2328355.html 1. core文件的简单介绍在一个 ...

  10. go安装windows源码

    直接安装就好,下面是安装地址http://pan.baidu.com/s/1gdDFi9t