Swing 顶层容器

顶层容器值得是容纳其他容器的容器组件,包括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

时间: 2024-08-10 16:58:44

Swing 顶层容器的相关文章

第三节 Java Swing其它容器

第三节:其它容器 在Java Swing开发中,窗体部分除了可以使用JFrame表示之外,还有其他几种常见的窗体:JPanel,JSplitPanel,JTabbedPane,JScrollPane,JdesktopPane,JInternalFrame等,下面就简单介绍几种 JPanel JPanel也是经常使用的容器之一,可以使用JPanel完成各种复杂的界面显示.在JPanel中可以加入人意的组件,之后直接讲JPanel容器加入到JFrame中即可显示.JPanel常用方法如下: Publ

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

如果父级容器是Canvas,则可以直接设置尺寸.放到其他widget的时候也会保持设定好的尺寸(而不管父容器是什么类型). 原文地址:https://www.cnblogs.com/timy/p/9146243.html

NJUPT JAVA语言 综合图形界面程序设计

一. 实验目的和要求 学习和理解JAVA SWING中的容器,部件,布局管理器和部件事件处理方法. 通过编写和调试程序,掌握JAVA图形界面程序设计的基本方法. 实验内容: 设计和编写一个用于将人民币转换为等值的美元的程序,界面要求可以输入人民币的金额并可以得到转换后的结果. 附:程序使用的人民币外汇牌价参考 每100元美元等值买入人民币数:619.72 (2015/5/23 数据) 二.实验代码 package think; import java.awt.Color; import java

201671010124 2016-2017-2 《Java程序设计》

Swing 组件在javax.swing包中.其特点: ( 1 ) Swing组件是用纯Java代码实现的轻量级组件. (2) Swing组件的多样化 Swing是AWT的扩展, Swing组件以"J"开头. 与AWT组件不同,Swing组件不能直接添加到顶层容器中,它必须添加到一个与Swing顶层容器相关联的内容面板(content pane)上.

201671010118 2016-2017-2《Java程序设计》 第十三周学习心得

第十三周课程学习已经结束,我们学习了图形用户界面GUI(Graphical User Interfaces),为用户提供交互式的图形化操作界面,Java有专门的类库:生成各种标准图形界面元素和处理图形界面的各种事件.用来生成图形用户界面元素的类库:java.awt包:和javax.swing包,Swing组件不能直接添加到顶层容器,它必须添加到一个与Swing顶层容器相关联的内容面板(content pane)上.我们还复习了五六章内容,在编程题上还是存在一些问题,所以以后还是多敲代码多练习.在

201771010101 白玛次仁 《2018面向对象程序设计(Java)》第十三周学习总结

实验十三  图形界面事件处理技术 实验时间 2018-11-22 学习总结: Compoment类提供的功能:–基本的绘画支持.–外形控制.–大小和位置控制.–图像处理.–组件状态控制 每个容器:– add() 方法向容器添加某个组件,–  remove()方法从容器中删除某个组件. 容器通过方法  setLayout () 设置某种布局. Swing比AWT 组件具有更强的实用性和美观性. Swing组件必须添加到一个与  Swing 顶层容器相 关联的内容面板( contentpane)上.

Swing程序最佳架构设计—以业务对象为中心的MVC模式(转)

前言: 我打算写一系列关于Swing程序开发的文章.这是由于最近我在做一个Swing产品的开发.长期做JavaEE程序,让我有些麻木了.Swing是设计模式的典范,是一件优雅的艺术品,是一件超越时代的产品! 有机会作Swing软件的开发,让我非常有感觉! 呵呵,希望有机会能够用Java3D编写软件,那种感觉一定更棒! Java和Swing都是杰作.我这个人对别人一向很挑剔的,能够得到我由衷地赞誉,可想而知它们有多优秀了.奇怪的是,它们居然一直都无法占领桌面市场.有人说这是技术的原因.我认为这应该

Swing的布局方式

  Swing的布局方式 当选择使用JPanel和顶层容器的content pane时,需要考虑布局管理.JPanel缺省是初始化一个FlowLayout,而content pane缺省是初始化一个BorderLayout.下面将分别介绍几种最常用的布局管理器:FlowLayout.BorderLayout.BoxLayout.CardLayout.GridLayout和GridBagLayout. 代码演示每一个布局管理器都会有一个代码演示,xxxLayoutDemo.java(见附件).这些

Java ——对Swing、AWT和SWT的认识

对Swing.AWT和SWT的认识 摘要:现在java提供了除swing之外的图形GUI开发工具,那么他们之间有什么区别呢?本文主要分析了Swing,AWT和SWT他们之间的区别. 1. 三者的概述: AWT(Abstract Window Toolkit) 是 API为Java 程序提供的建立图形用户界面GUI (Graphics User Interface)工具集,基于一个对等体实现的.AWT可用于Java的applet和applications中.它支持图形用户界面编程的功能包括: 用户