第18讲 java swing

合集下载

031801_AWT、Swing简介

031801_AWT、Swing简介

布局管理器
使用布局管理器可以使容器中的组件按照指定的位置进行摆放,另外的一 个好处是,即使容器改变了大小,布局管理器也可以准确的把组件放到指 定的位置,这样就可以有效的保证版面不会混乱。在AWT中所有的布局 管理器都是LayoutManager的子类。
Swing简介
AWT大量的引入了Windows函数,所以经常被称为重量级组件,在Java 2中提供了轻量级的图形界面组件 —— Swing,Swing使用Java语言实现, 是以AWT平台为基础构建起来的新组件,直接使用Swing可以更加轻松的 构建用户界面。 在Java中所有的Swing都保存在javax.swing包中,从包的名称中(javax) 就可以清楚的发现此包是一个扩展包,所有的组件是从JComponent扩展 出来的。
AWT包组成
在整个AWT包中提供的所有工具类,主要分为以下三种: 组件:Component 容器:Container 布局管理器:LayoutManager
组件
在图形界面中,用户经常会看到一个个的按钮、标签、菜单等,那么这些 实际上就是一个个的组件。这些组件都会在一个窗体上显示。
JAVA 应用开发详解
第18章:图形界面 —— AWT、Swing简介
© MLDN 软件教学研发部
本章目标
了解AWT的作用 了解Swing与AWT的关系
AWT
AWT(Abstract Windowing Toolkit),抽象窗口工具包,是SUN公司在 发布JDK 1.0的时一个重要组成部分,是Java提供的用来建立和设置Java 的图形用户界面的基本工具。AWT中的所有工具类都保存在java.awt包中, 此包中的所有操作类可用来建立与平台无关的图形用户界面(GUI)的类, 这些类又被称为组件(components)。

javaSWING讲解PPT课件

javaSWING讲解PPT课件
• 东(EAST) • 西(WEST) • 南(SOUTH) • 北(NORTH) • 中(CENTER)五个区域,组件只能被添加到指定的区域 • 如不指定组件的加入部位,则默认加入到CENTER区。 • 每个区域只能加入一个组件,如加入多个,则先前加入的会被覆盖。
第19页/共40页
BorderLayout布局管理器 • BorderLayout型布局容器尺寸缩放原则:
说明
将项添加至项的列表
返回指定索引位置的列表项
返回列表(作为对象)中的项数 将当前选择的项作为一个对象返回
返回当前选择项的索引位置
第15页/共40页
布局管理器
• 用户界面上的GUI组件可以按照一定的格式布局 例如水平排列,或按网格方式排列
• 布局管理器类是一组类,它 • 实现 java.AW youtManage r 接口 • 帮助在容器中放置组件
位置属性,如果试图使用Java语言提供的setLocation(),setSize(),setBounds()等方法,则都会被 布局管理器覆盖。 • 如果用户确实需要亲自设置组件大小或位置,则应取消该容器的布局管理器,方法为:
• setLayout(null)
第22页/共40页
课堂练习
第23页/共40页
SWING容器组件1
Swing 应用程序
主窗口
内容面板
第3页/共40页
顶层容器(每个应用 程序中至少有一个)
主要显示区域包含 GUI 中的可视组件
创建顶层容器
创建容器
设置容器大小 (对框架及面板而言)
设置容器可见度 (对框架及面板而言)
SWING容器组件2
javax.swing 包
常见容器
JFrame

Swing讲解

Swing讲解
2015年10月14日10时18分
Swing容器与控件示图
JLabel标签 JFrame容器 表格
JTexteField 文本区域
JPasswordField 创建口令文本对象
JButton 按钮
2015年10月14日10时18分
JCheckBox 复选框
Swing控件
添加表格代码
2015年10月14日10时18分
Swing控件

创建代码:

JMenu file = new JMenu ("文件"); JMenu edit = new JMenu ("编辑"); JMenu format = new JMenu ("格式 ");

菜单栏
菜单条

JMenu help = new JMenu ("帮助"); JMenuItem newItem = new JMenuItem ("新建");


Swing程序

Swing类的程序设计一般可按照下列流程来进行
(1) (2) (3)
流程
引入Swing包 选择"外观和感觉" 设置顶层容器
(4)
(5) (6) (7)
设置按钮和标签
向容器中添加组件 在组件周围添加边界 进行事件处理
2015年10月14日10时18分
Swing容器与控件

菜单项对象 NhomakorabeaJMenuItem
saveItem = new
JMenuItem ("保存");

JMenuItem
exitItem = new

JavaSwing介绍

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 * ⾯板中我们可以添加⽂本字段,按钮及其他组件。

javaSwing总结PPT教学课件

javaSwing总结PPT教学课件

不可独立 显示的组 件
JComponent
Component Container
Swing组件类的层次
Window
可以独立 显示的组 件
Jpanel
JTable
JTree

JTextAr ea
Frame JFrame
Dialog JDialog
2020/12/11
语默制造 14
Swing组件
Swing组件类的层次
• 最常用的JFrame窗口类的构造器是无参构造器,使用该构造器将创建一 个初始不可见的新窗体。除此之外还有具有一个String类参数的构造器, 使用该构造器能够在初始时就创建一个具有标题的新窗体。还有两种需 要给出图形配置参数的构造器,这两种构造器在本书中不进行介绍。
• 创建新窗口后,就可以通过JFrame窗口类的方法来设置新窗口。首先使 用无参构造器创建的是一个不可见的新窗体,所以要使用方法来将窗体 设置为可见的形式。在JFrame窗口类中定义了一个setVisible方法来设 置窗口的可见性,该方法具有一个布尔型参数,true表示可见,false表 示不可见。将初始状态下的窗口设置为不可见是有原因的,因为有很多 对窗口的操作需要在窗口不可见的状态下执行,从而setVisible方法通 过在程序的最后执行。
• 16 • 17 • 18 • 19
• 20
import javax.swing.*;//导入Swing包 //继承JFrame类 public class Swing1 extends JFrame {
//定义构造器 public Swing1() {
this.setLayout(null);//设置布局管理器 JLabel jl=new JLabel();//定义一个标签 jl.setText("第一个Swing程序");//设置显示的文字 jl.setBounds(50,50,400,50);//设置标签的大小和位置 this.add(jl);//将标签放到窗口中 this.setBounds(300,250,500,200);//设置窗口的大小和位置 this.setVisible(true); //设置窗口是可见的 }

使用Java Swing进行桌面应用程序开发

使用Java Swing进行桌面应用程序开发

使用Java Swing进行桌面应用程序开发Java Swing是Java编程语言的一个GUI工具包,可以用于开发漂亮的桌面应用程序。

它提供了丰富的组件和布局管理器,可以帮助开发人员快速构建用户友好的界面。

下面我们来介绍一下如何使用Java Swing进行桌面应用程序开发。

首先,我们需要创建一个Swing的主窗口。

可以通过继承JFrame类来创建一个新的窗口,然后设置窗口的标题、大小和关闭操作等属性。

在构造函数中,可以添加各种组件来构建窗口的布局。

接着,我们可以在窗口中添加各种Swing组件,如按钮、文本框、标签、复选框等,来实现用户交互。

通过设置组件的属性和监听器,可以实现各种功能,如点击按钮触发事件、输入文本获取数据等。

另外,布局管理器也是Swing开发中很重要的一部分。

Swing提供了多种布局管理器,如FlowLayout、BorderLayout、GridBagLayout 等,可以帮助我们更方便地实现窗口中组件的排列和布局。

除了基本的组件和布局管理器,Swing还提供了绘图功能和自定义组件的支持。

通过继承JComponent类,可以实现自定义的绘图和组件,以满足更复杂的需求。

最后,在完成界面设计和功能实现后,可以通过调用setVisible(true)方法来显示窗口,并运行程序。

在程序运行时,用户可以与界面进行交互,体验功能和效果。

总的来说,使用Java Swing进行桌面应用程序开发是一种简单而灵活的方式。

通过合理使用Swing提供的各种组件和功能,可以快速实现各种桌面应用程序,并提供良好的用户体验。

希望以上介绍对你有所帮助,祝你在Java Swing开发的路上顺利!。

JavaSwing精品PPT课件

JavaSwing精品PPT课件
容器类控件 普通容器 com.kingdee.bos.ctrl.swing.KDPanel 滚动容器 com.kingdee.bos.ctrl.swing.KDScrollPane 页签容器 com.kingdee.bos.ctrl.swing.KDTabbedPane 分割区容器 com.kingdee.bos.ctrl.swing.KDSplitPane 标题容器 com.kingdee.bos.ctrl.swing.KDContainer 编辑器容器 com.kingdee.bos.ctrl.swing.KDLabelContainer
KDMenu
KDMenuItem
KDFormattedTextField
KDNumberTextField KDBusiCurrencyField,KDPanel
KDScrollBar, …
组合控件:由元控件组合而成的控件。
KDComboBox KDList KDTree KDDatePicker
KDTable
2 文本显示控件 com.kingdee.bos.ctrl.swing.KDLablel
P8
应用场景分类2
窗口系列控件
窗体 com.kingdee.bos.ctrl.swing.KDFrame
对话框 com.kingdee.bos.ctrl.swing.KDDialog
内部窗体 com.kingdee.bos.ctrl.swing.KDInternalFrame
菜单栏 com.kingdee.bos.ctrl.swing.KDMenuBar
状态栏 com.kingdee.bos.ctrl.swing.KDStatusBar
按钮类型控件
功能按钮 com.kingdee.bos.ctrl.swing.KDButton

java Swing(高级组件应用)

java Swing(高级组件应用)

模版示例
菜单(JMenu)
Object Object Component Component Container Container JComponent JComponent
JMenuBar JMenuBar
JPopupMenu JPopupMenu
AbstractButton AbstractButton
树简单示例
总结
掌握Swing高级控件的基本用法
Swing控件的功能非常强大,需要学员们不断的在实 践中掌握其用法

菜单组件示例
工具栏(JToolBar)
工具栏组件用于将菜单中常用的项目直接展现给用户 工具栏一般置于菜单的下方并水平放置,可根据用户的需要设置可否 拖动 工具栏的构造方法
– JToolBar() 创建新的工具栏;默认的方向为 HORIZONTAL – JToolBar(int orientation) 创建具有指定 orientation 的新工具栏 – JToolBar(String name) 创建一个具有指定 name 的新工具栏 – JToolBar(String name, int orientation) 创建一个具有指定 name 和 orientation 的新工具栏
JSeparator JSeparator
JMenuItem JMenuItem JMenu JMenu
JCheckboxMenuItem JCheckboxMenuItem JRadioButtonMenuItem JRadioButtonMenuItem
JMenuBar
JMenuBar的作用是摆放菜单,当界面拥有很多的菜单时 必须通过JMenuBar加入到界面中 构造一个空的JMenuBar是没有意义的, JMenuBar中必 须要有菜单才可显示出来 使用方法
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
为了方便管理,一般会将 JInternalFrame加入JDesktopPane中,
方法将控件放到Tab 上。
JDesktopPane是一种特殊的分层
面板,是JLayeredPane子类,用来 建立虚拟桌面(Vitual Desktop).它
可以显示并管理众多
JInternalFrame之间的层次关系。
第18讲 Java Swing
• 18.1 • 18.2 • 18.3 • 18.4 • 18.5
Swing 入门 容器 布局管理 基本组件 本讲小结
18.1 Swing入门
• GUI编程的步骤: • (1)创建容器; • (2)为容器设置布局; • (3)创建组件,把其添加到容器中; • (4)为组件添加事件处理代码。
18.2 容器
• 容器是用来盛装其它GUI组件的GUI组件,AWT中的容器类 有Window、Panel、Applet、Frame、dialog等,而Swing 容器类有JFrame、JWindow、JDialog、JApplet、JPanel 等。本节介绍几种常用的Swing容器。
18.2.1 顶层容器
示区域的面板,分割方式
可以是水平分割,也可以
是垂直分割。如果设置了
动态拖拽功能,则拖动分
割线时两边组件会随着拖
拽动态改变大小。通常先 把组件放到JScrollPane 中,再把JScrollPane放 到JSplitPane中,这样每 个窗口都可以拖动滚动条 看到组件的全部内容。
• (4)JTabbedPane (5)JLayeredPane
4)showOptionDialog()方法:显示选择对 话框。
18.3 布局管理
• Java 为了实现跨平台的特性并且获得动态的 布局效果,采用布局管理器对容器中的组件进 行布局。
• Java定义了多种布局管理器,通过布局管理器 之间的组合,能够设计出复杂的界面,而且在 不同操作系统平台上都能够有一致的显示界面。
18.3.1 BorderLayout
• BorderLayout 是JFrame的默认布局,可以直接 通过add()方法为其添加组件,默认情况下组件 被放在JFrame的中心位置,并且组件向四周扩展, 占满整个JFrame,BorderLayout的特点:
• (1)把容器分为五个方位:东、西、南、北、 中,组件按照方位被添加到容器。
18.3.4 CardLayout • CardLayout是把容器分成多张卡片,每个组件占用一张
• 在这种布局方式中,组件的大小不会随着容器 大小的变化而改变,其位置可能会发生改变。
18.3.3 GirdLayout
• GridLayout是把容器分成M×N个网格,M是行数,N是列 数,M和N的值可以在创建GridLayout的对象时确定。组 件按照从左到右,从上到下的顺序放入容器,容器大小 改变时,组件的相对位置不变,大小会改变。
• (4)JWindow与JFrame类似,所不同的是JWindow没有 用于默认关闭操作或是菜单栏的属性。
Hale Waihona Puke 18.2.2 中间层容器• 有些容器不能直接显示到电脑屏幕上,必须放置到顶层 容器或其它容器中,它们存在的目的是放置各种组件。 常用的中间层容器有JPanel、JScrollPane、JSplitPane、 JToolBar、JInternalFrame、JLayeredPane、JRootPane、 JTabbedPane
18.1.2 显示框架
• drawString(String s, int x, int y) 从参 数x、y指定的坐标位置处,从左向右绘制参数 s指定的字符串。
• drawChars(char data[],int offset, int length, int x, int y) 绘制data数组中的 部分字符,length指定数组中要连续绘制的字 符的个数,offset是首字符在数组中的位置。
• (1)JPanel
• JPanel(面板)常用来 放置其它轻量级组件。 默认状态下,它不绘制 任何东西,可以很容易 的为其设置边框,也可 以嵌套使用。
• (2)JScrollPane • JScrollPane(滚动面
板)JScrollPane包括 九个部分:一个中心显 示区、四个角和四条边
(3)JSplitPane JSplitPane(分割面板) 是一个可以被分成两个显
• (2)组件的大小占满整个所属方位,组件的 大小随着容器的变化而变化。
• (3)如果不指定方位,组件默认被添加到容 器的中心位置,并且占满整个容器。
18.3.2 FlowLayout
• FlowLayout是JPanel的默认布局方式。使用 FlowLayout布局方式的容器中,组件按照加入 的先后顺序按照设置的对齐方式(居中、左对 齐、右对齐)从左向右排列,一行排满后再从 下一行开始继续排列。
(7)JOptionPane JOptionPane(选择面板)能够方便地弹出 满足用户要求的各种类型对话框。此类中包
含showXxxDialog()方法: 1)showConfirmDialog()方法:显示确认对 话框;
2)showInputDialog()方法:显示输入对话 框;
3)showMessageDialog()方法:显示消息对 话框;
• Swing中的JFrame、JDialog、JApplet和JWindow直接继 承了AWT组件,它们是重量级的,被称为顶层容器。
• (1)JFrame继承自AWT中的Frame类,通常作为主窗体 使用。
• (2)JDialog用于创建对话框,对话框不能单独存在, 必须借助于窗体。
• (3)JApplet可作为Java小应用程序的窗体,被嵌入到 网页中运行。
• JTabbedPane(页签面板) 可以在窗体上显示 (6)JInternalFrame 多个控件。可以将 JInternalFrame(内部窗体)具有
不同类别的控件放 到不同的Tab页上, 然后通过需要点击 相应的Tab页。可以 通过 setTabComponentAt
最大化、最小化、关闭、加入 菜单等功能。JInternalFrame是轻 量级组件,不能单独显示
相关文档
最新文档