java Swing(容器,简单控件,布局管理器)
java swchi用法

java swchi用法引言是文章开篇部分,用于介绍文章的背景、目的和结构。
在本文中,我们将对Java Swing的使用进行详细介绍和讨论。
1.1 概述:Java Swing是Java语言提供的一套图形用户界面(Graphical User Interface, GUI)工具包,它为开发者提供了创建丰富、交互性强的图形界面应用程序的能力。
通过使用Java Swing,开发者可以轻松地设计和实现窗口、标签、按钮等各种UI组件,并与用户进行交互。
1.2 文章结构:本文将分为五个主要部分来介绍Java Swing的使用方法和常用组件。
首先,在“2. Java Swing简介”部分中,我们将对Java Swing进行基本介绍,包括其定义、特点以及应用领域。
然后,在“3. 开发Java Swing应用程序的基本步骤”部分,我们将详细说明如何安装和配置Java开发环境,并给出开发Swing应用程序的基本步骤。
接下来,在“4. Java Swing常用组件及用法示例”部分中,我们将逐一介绍常见的Swing组件,如JFrame窗口类、JLabel标签类以及JButton按钮类,并给出相应的使用方法示例。
最后,在“5. 结论与展望”部分中,我们将对Java Swing的优势与局限性进行总结,并展望Java GUI开发的未来趋势。
1.3 目的:本文旨在帮助读者了解和掌握Java Swing的基本使用方法和常用组件,以便能够快速开发出功能强大、用户友好的图形界面应用程序。
通过学习本文,读者将能够了解Swing的特点和应用领域,并掌握开发Swing应用程序的基本步骤。
同时,本文还将通过具体示例介绍常见的Swing组件的用法,以帮助读者更好地理解和运用这些组件。
以上是“1. 引言”部分内容的详细描述。
接下来,我们将继续撰写文章其他部分的内容。
2. Java Swing 简介2.1 什么是Java SwingJava Swing是一组用于创建图形用户界面(GUI)的Java库。
java swing布局管理器

//创建跟节点
private DefaultTreeModel dtm=new DefaultTreeModel(dmtnRoot);
//创建树状列表控件
private JTree jt=new JTree(dtm);
2.1、
在开发系统的各个功能模块之前,首先要完成主界面的设计,此系统有两个主窗体,教师客户端主窗体和学生客户端主窗体,不同的是学生客户端主窗体与教师客户端主窗体功能有差异。写主界面的时候要为各个功能模块留出位置,以便将各个功能模块添加到主窗体,开发主界面的代码框架如下(这里写的是教师客户端主窗体):
new DefaultMutableTreeNode(new MyNode("学生信息管理","2"));
private DefaultMutableTreeNode dmtn3=
new DefaultMutableTreeNode(new MyNode("课程管理","3"));
private DefaultMutableTreeNode dmtn4=
new DefaultMutableTreeNode(new MyNode("课程成绩录入","32"));
private DefaultMutableTreeNode dmtn34=
new DefaultMutableTreeNode(new MyNode("添加课程","34"));
private DefaultMutableTreeNode dmtn42=
JavaSwing界面设计(所有控件及示例)

25
示例:学生信息管理系统
步骤二:添加标签(要录入的基本信息的名称)
JFrame f=new JFrame(); …… Container con=f.getContentPane(); Jpanel pan=new JPanel(); JLabel l_xm=new JLabel("姓名"); pan.add(l_xm); JLabel l_xb=new JLabel("性别"); pan.add(l_xb); …… con.add(pan); f.setVisible(true);
3
用户界面概述
用户界面的类型
字符用户界面(CUI):例如,MS-DOS 图形用户界面(GUI):例如,Microsoft Windows
GUI的组件
组件
基本的控制组件,例如:Button、Label等。 容器:能容纳和排列组件的组件
组件继承它的父容器的性质
4
Label
Frame Window
创建图标和图像对象 a) ImageIcon ii = new ImageIcon(“x.gif ”); b) Image image = ii.getImage();
设置 setIconImage(image);
19
界面的基本组织方式
由JFrame创建初始的用户界面 由JPanel、JScrollPane、JTabbedPane、JSplitPane、
添加中间容器JPanel JFrame f=new JFrame(); f.setTitle("学生信息管理系统");
第8章 Swing GUI布局管理器及容器的使用-Java语言GUI程序设计-赵满来-清华大学出版社

8.1 自由设计
8.1.1 概述 自由设计是NetBeans IDE将布局管理器与布
局工具结合起来的一种技术,是GUI构建器 的默认布局。
使用自由设计方法设计布局时,使用鼠标 拖拽改变组件位置和大小,使用工具按钮 和菜单设置组件对齐方式、更改大小及可 调性等操作,NetBeans IDE理解并转换为对 应的GroupLayout布局管理代码。
面板中组件的布局取决于所采用的布局管理器。
8.6.3 应用举例 例8.5 综合运用布局管理器、填充器和面板组
件改进8.2节完成的ScoreInput窗体的界面布局。 chap08项目book.ScoreDemo. ScoreInput1
8.7 滚动窗格
Swing的滚动窗格容器通过提供水平和垂直 滚动条
第8章 Swing GUI布局管理器及 容器的使用
本章内容:
8.1 自由设计 8.2 网格式布局和网格包布局 8.3 Box布局 8.4 其他布局管理器 8.5 填充器Swing Filler 8.6 面板容器 8.7 滚动窗格 8.8 拆分窗格 8.9 标签化窗格 8.10 工具栏
chap08项目book. layoutdemo. NumberAddition
8.2 网格式布局和网格包布局
8.2.1 网格式布局 网格式布局GridLayout把组件放置在一个个
矩形网格中。 网格是由虚细线分割成多个单元格的可视
区域组成。 网格线通过网格索引数来指定 例8.2采用网格式布局设计一个简单四则运
8.8 拆分窗格
8.8.1 使用方法 分别向两个部分添加组件,取代【左键】
和【右键】按钮占位符。
8.8.2 属性
(1)orientation (2)dividerLocation (3)dividerSize (4)onTouchExpandable (5)resizeWeight
java布局中的BoxLayout布局,使用BoxLayout进行Swing布局

java布局中的BoxLayout布局,使⽤BoxLayout进⾏Swing布局在⽤户使⽤ Java Swing 进⾏⽤户界⾯开发过程中,会碰到如何对 Java Swing 的控件进⾏布局的问题。
Swing 的控件放置在容器(Container) 中,容器就是能够容纳控件或者其它容器的类,容器的具体例⼦有 Frame、Panel 等等。
容器需要定义⼀个布局管理器来对控件进⾏布局管理,Swing 当中提供的主要的布局管理器有 FlowLayout、BorderLayout、BoxLayout、GridLayout 和 GridBaglayout, 它们的主要特点如表 1 所⽰:表 1. Swing 中的⼀些主要布局管理器的⽐较布局管理器特点FlowLayout把控件按照顺序⼀个接⼀个由左向右的⽔平放置在容器中,⼀⾏放不下,就放到下⼀⾏BorderLayout将整个容器划分成东南西北中五个⽅位来放置控件,放置控件时需要指定控件放置的⽅位BoxLayout可以指定在容器中是否对控件进⾏⽔平或者垂直放置,⽐ FlowLayout 要更为灵活GridLayout将整个容器划分成⼀定的⾏和⼀定的列,可以指定控件放在某⾏某列上GridBagLayout是 Swing 当中最灵活也是最复杂的布局管理器,可对控件在容器中的位置进⾏⽐较灵活的调整本⽂主要关注在 BoxLayout 布局管理器的使⽤上。
我们⾸先对 BoxLayout 作⼀下介绍。
BoxLayout 介绍如前所述,BoxLayout 可以把控件依次进⾏⽔平或者垂直排列布局,这是通过参数 X_AXIS、Y_AXIS 来决定的。
X_AXIS 表⽰⽔平排列,⽽ Y_AXIS 表⽰垂直排列。
BoxLayout 的构造函数有两个参数,⼀个参数定义使⽤该 BoxLayout 的容器,另⼀个参数是指定 BoxLayout 是采⽤⽔平还是垂直排列。
下⾯是⼀个创建 BoxLayout 实例的例⼦:JPanel panel=new JPanel();BoxLayout layout=new BoxLayout(panel, BoxLayout.X_AXIS);panel.setLayout(layoout);在这个例⼦中,⼀个 BoxLayout 布局管理器的实例 layout 被创建,这个实例被设置为 panel 的布局管理器,该布局管理器采⽤了⽔平排列来排列控件。
JavaSwing介绍

JavaSwing介绍Swing 是⼀个为Java设计的GUI⼯具包。
Swing是JAVA基础类的⼀部分。
Swing包括了图形⽤户界⾯(GUI)器件如:⽂本框,按钮,分隔窗格和表。
Swing提供许多⽐AWT更好的屏幕显⽰元素。
它们⽤纯Java写成,所以同Java本⾝⼀样可以跨平台运⾏,这⼀点不像AWT。
它们是JFC的⼀部分。
它们⽀持可更换的⾯板和主题(各种操作系统默认的特有主题),然⽽不是真的使⽤原⽣平台提供的设备,⽽是仅仅在表⾯上模仿它们。
这意味着你可以在任意平台上使⽤JAVA⽀持的任意⾯板。
轻量级组件的缺点则是执⾏速度较慢,优点就是可以在所有平台上采⽤统⼀的⾏为。
Hello World 程序HelloWorldSwing.java ⽂件代码如下:1import javax.swing.*;2public class HelloWorldSwing {3/**{4 * 创建并显⽰GUI。
出于线程安全的考虑,5 * 这个⽅法在事件调⽤线程中调⽤。
6*/7private static void createAndShowGUI() {8// 确保⼀个漂亮的外观风格9 JFrame.setDefaultLookAndFeelDecorated(true);1011// 创建及设置窗⼝12 JFrame frame = new JFrame("HelloWorldSwing");13 frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);1415// 添加 "Hello World" 标签16 JLabel label = new JLabel("Hello World");17 frame.getContentPane().add(label);1819// 显⽰窗⼝20 frame.pack();21 frame.setVisible(true);22 }2324public static void main(String[] args) {25// 显⽰应⽤ GUI26 javax.swing.SwingUtilities.invokeLater(new Runnable() {27public void run() {28 createAndShowGUI();29 }30 });31 }32 }执⾏以下命令输出结果:$ javac HelloWorldSwing.java$ java HelloWorldSwing⼀个⽤户登录框实例SwingLoginExample.java ⽂件代码如下:1import javax.swing.JButton;2import javax.swing.JFrame;3import javax.swing.JLabel;4import javax.swing.JPanel;5import javax.swing.JPasswordField;6import javax.swing.JTextField;7public class SwingLoginExample {89public static void main(String[] args) {10// 创建 JFrame 实例11 JFrame frame = new JFrame("Login Example");12// Setting the width and height of frame13 frame.setSize(350, 200);14 frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);1516/* 创建⾯板,这个类似于 HTML 的 div 标签17 * 我们可以创建多个⾯板并在 JFrame 中指定位置18 * ⾯板中我们可以添加⽂本字段,按钮及其他组件。
JAVA SWING 4中布局方式

创建一个新的流布局管理器,它具有指定的对齐方式以及指定的水 平和垂直间隙。
方法摘要
void
addLayoutComponent(String name, Component comp) addLayoutComponent 将指定的组件添加到布局中。 getAlignment() getAlignment 获取此布局的对齐方式。 getAlignOnBaseline() getAlignOnBaseline 如果组件将沿其基线垂直对齐,则返回 true。 getHgap() getHgap 获取组件之间以及组件与 Container 的边之间的水平间 隙。
构造方法摘要
BorderLayout() BorderLayout 构造一个组件之间没有间距的新边框布局。 BorderLayout(int hgap, int vgap) BorderLayout 构造一个具有指定组件间距的边框布局。
方法摘要
void
addLayoutComponent(Component comp, Object constraints) addLayoutComponent 使用指定的约束对象将指定组件添加到布局中。 addLayoutComponent(String name, Component comp) addLayoutComponent 已过时。 已过时。 由 addLayoutComponent(Component, Object)
float
float
Component getLayoutComponent getLayoutComponent(Container target, Object constraints)
Component getLayoutComponent getLayoutComponent(Object constraints)
Java swing布局详解(附示例图)

当选择使用JPanel和顶层容器的content pane时,需要考虑布局管理。
JPanel缺省是初始化一个FlowLayout,而content pane缺省是初始化一个BorderLayout。
下面将分别介绍几种最常用的布局管理器:FlowLayout、BorderLayout、BoxLayout、CardLayout、GridLayout和GridBagLayout。
代码演示每一个布局管理器都会有一个代码演示,xxxLayoutDemo.java(见附件)。
这些文件主要有三个方法组成:addComponentsToPane()提供布局逻辑(依据不同的布局管理器和UI内容)。
Java代码1public static void addComponentsToPane(Container pane) {。
}2/**3*createAndShowGUI()实例化一个JFrame,通过它的ContentPane加载布局逻辑内容。
4*/5private static void createAndShowGUI() {6// Create and set up the window.7JFrame frame = new JFrame("FlowLayoutDemo");8frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);9// Set up the content pane.10addComponentsToPane(frame.getContentPane());11// Display the window.12frame.pack();13frame.setVisible(true);14}15//main()程序入口,单独起一个线程,实例化UI。
16public static void main(String[] args) {17javax.swing.SwingUtilities.invokeLater(new Runnable() {18public void run() {19createAndShowGUI();20}21});22}FlowLayoutFlowLayout类是最简单的布局管理器。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
Swing容器组件
javax.swing 包 javax.swing 包
常见容器
JFrame JFrame
JPanel JPanel
JScrollPane JScrollPane
容器组件的理解
JFrame,JDialog,JWindow,JApplet都是底层容 器,同时为重量级容器,用来显示其他容器或组件
JTextArea 组件用来接受用户输入的多行文本信息 可用来实现滚动条效果 构造函数如下:
JTextArea() JTextArea(int rows, int cols):rows表示行数,cols表示列数 JTextArea(String text):text表示默认文字 JTextArea(String text, int rows, int cols)
AWT 包 含 内 容
SWING
Swing Swing (轻量级组件,纯Java组件) (轻量级组件,纯Java组件) 通过 Javax.swing 包 创建 GUI 创建 GUI
容器 组件 可改变的外观 Java2D图形绘制
包含 Swing 组件 以图形表示的对象允许用户交互 可更换图形界面的风格 使用Java2D绘制图形
AWT
AWT AWT ( 重量级组件) ( 重量级组件) 容器 组件 布局管理器 图形和绘制方法 字体 事件 通过 java.awt 包 创建 GUI 创建 GUI
包含 AWT 容器组件 以图形表示的对象允许用户交互 定义 GUI 组件的位置 使用 AWT 图形方法相对于窗口绘制图形 创建并构造用于选择新字体的对象 用于用户和系统交互
BorderLayout
North 上边的组件
左 West 边 的 组 件 CENTER
右 边 的 组 件 East
容器
下边的组件 South
BorderLayout
方法 BorderLayout() setHgap(int hgap) setVgap(int vgap)
说明 创建新的BorderLayout,组件之间没有间距 将组件间的水平间距设置为指定的值 将组件间的垂直间距设置为指定的值
JPanel
JLabel
Swing的JLabel(标签)组件用来实现显示文字或图片的功能 JLabel类允许用图标,字符串或两者同时构造一个标签 构造函数如下:
JLable() JLable(Icon icon):icon表示使用的图标 JLable(Icon icon, int Alignment): Alignment表示排列方式 JLable(String text):text表示使用的字符 JLable(String text, int Alignment) JLable(String text, Icon icon,int Alignment)
Swing 包 含 内 容
Swing的优势
轻量级组件 可改变外观 MVC的程序设计思想 运行更稳定
Swing结构
Object
Component Container JText JComboBox JLabel JList JMenuBar Window Frame JFrame Dialog JScrollBar JDialog AbstractButton JToggleButton JCheckBox JRadioButton JMenuItem JMenu JButPanel
依次排序的组件
右下角 垂直或水平间距 容器
FlowLayout
方法 FlowLayout() setAlignment(int align) setHgap(int hgap) setVgap(int vgap)
说明 构造新的中间对齐的FlowLayout, 将垂直和水平间距保留为5个像素 align为对齐方式FlowLayout.CENTER 设置指定布局的水平间距 设置指定布局的垂直间距
GridLayout
方法 GridLayout() setHgap(int hgap) setVgap(int vgap)
说明 创建新的GridLayout,组件之间没有间距 将组件间的水平间距设置为指定的值 将组件间的垂直间距设置为指定的值
总结
Java的GUI技术:SWING,AWT 理解Swing及与AWT的区别 swing结构 swing控件(JLabel,JButton,JTestFild,JTextArea) 布局管理器(FlowLayout,BorderLayout,GridLayout)
JPanel为上层容器,轻量级容器,一般用来放置其他 功能组件 在使用的时候我们一般得到底层容器的 ContentPane,然后将上层容器加入其中
常见功能组件
文本域 标签 复选框 单选按钮 文本区
按钮
JFrame
1. 最底层容器组件 2. 扩展java.awt.Frame类 3. 用于在Swing程序中创 建窗口 4. 包含边框,标题和用于 关闭和图标化窗口的按 钮 JFrame的常用方法 JFrame() JFrame(String title) void setVisible() void setSize(int width, int height) Dimension getSize() void add(Component comp) void setTitle(String name)
�
JFrame
JPanel
1. 中间层容器组件 2. 用于将较小的轻量级组件组合 在一起 3. 与内容窗格相似,面板在默认 情况下不透明 4. 不包含边框,标题和用于关闭 和图标化窗口的按钮
JPanel的常用方法 JPanel() JPanel(LayoutManager layout) void add(Component comp) void setLayout(LayoutManager layout)
Swing(一)
课程目标
理解Java的图形化编程方式 掌握Swing的各种编程方法 掌握Swing的常用组件 掌握事件处理及监听者模式 使用Swing设计工程界面
本课目标
了解Java的GUI技术:AWT,SWING 理解Swing与AWT的区别 了解swing结构 容器(JFrame,JPanel) 控件(JButton,JTextFild) 布局管理器(FlowLayout,BorderLayout,GridLayout)
布局管理器
用户界面上的屏幕组件可以按照一定的格式布局
例如水平排列,或按网格方式排列
布局管理器类是一组类
实现youtManager接口 帮助在容器中放置组件
常用布局如下
BorderLayout FlowLayout GridLayout
FlowLayout
左上角 流布局是面板的默认布局管理器
了解(Java)GUI
Graphics User Interface 图形用户界面(GUI) JAVA1.0中使用抽象窗口工具箱( AWT )构建GUI 在JAVA2.0中,SUN公司推出了新的用户界面库:SWING相对AWT 来说,SWING功能更强大,使用更方便 SWING并没有代替AWT,SWING只是AWT的子类,它的使用依赖于 AWT
JLabel
JButton
Swing的按钮相对于AWT中Button类提供了更多的功能 JButton类允许用图标,字符串或两者同时构造一个按钮 构造函数如下:
JButton() JButton(Icon icon):icon表示使用的图标 JButton(String text):text表示使用的字符 JButton(String text, Icon icon)
JButton
JTextField
JTextField 组件允许输入或编辑单行文本 构造函数如下:
JTextField() JTextField(int size):size表示默认大小 JTextField(String text):text表示默认文字
JTextField
JTextArea