第18讲 java 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课件
第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容器与控件示图
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介绍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教学课件
不可独立 显示的组 件
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编程语言的一个GUI工具包,可以用于开发漂亮的桌面应用程序。
它提供了丰富的组件和布局管理器,可以帮助开发人员快速构建用户友好的界面。
下面我们来介绍一下如何使用Java Swing进行桌面应用程序开发。
首先,我们需要创建一个Swing的主窗口。
可以通过继承JFrame类来创建一个新的窗口,然后设置窗口的标题、大小和关闭操作等属性。
在构造函数中,可以添加各种组件来构建窗口的布局。
接着,我们可以在窗口中添加各种Swing组件,如按钮、文本框、标签、复选框等,来实现用户交互。
通过设置组件的属性和监听器,可以实现各种功能,如点击按钮触发事件、输入文本获取数据等。
另外,布局管理器也是Swing开发中很重要的一部分。
Swing提供了多种布局管理器,如FlowLayout、BorderLayout、GridBagLayout 等,可以帮助我们更方便地实现窗口中组件的排列和布局。
除了基本的组件和布局管理器,Swing还提供了绘图功能和自定义组件的支持。
通过继承JComponent类,可以实现自定义的绘图和组件,以满足更复杂的需求。
最后,在完成界面设计和功能实现后,可以通过调用setVisible(true)方法来显示窗口,并运行程序。
在程序运行时,用户可以与界面进行交互,体验功能和效果。
总的来说,使用Java Swing进行桌面应用程序开发是一种简单而灵活的方式。
通过合理使用Swing提供的各种组件和功能,可以快速实现各种桌面应用程序,并提供良好的用户体验。
希望以上介绍对你有所帮助,祝你在Java Swing开发的路上顺利!。
JavaSwing精品PPT课件
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(高级组件应用)
模版示例
菜单(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中必 须要有菜单才可显示出来 使用方法
JavaSwing图形用户界面的设计与实现方法
JavaSwing图形用户界面的设计与实现方法一、引言随着计算机技术的不断发展,图形用户界面(Graphical User Interface,GUI)在软件开发中扮演着越来越重要的角色。
作为用户与软件之间的沟通桥梁,GUI的设计与实现至关重要。
本文将介绍JavaSwing图形用户界面的设计与实现方法,帮助开发人员更好地利用JavaSwing创建出功能强大、用户友好的GUI界面。
二、Swing概述JavaSwing是Java提供的一套GUI组件库,它基于Java AWT (Abstract Window Toolkit)构建而成,相对于AWT,Swing提供了更加丰富的组件和更高的灵活性。
Swing拥有独立于平台的外观,通过Java代码实现GUI界面的构建和事件处理。
使用Swing可以快速实现各种界面风格,并且易于调整和扩展。
三、Swing组件的使用1. 容器类组件:容器类组件是其他组件的父容器,对应于应用程序的窗口或面板,常用的容器类组件有JFrame、JPanel、JDialog等。
通过创建容器类组件,可以将其他组件添加到容器中并管理和布局。
2. 基本组件:基本组件是构建GUI界面的基本元素,常用的基本组件有JButton、JLabel、JTextField等。
它们可以用于实现用户输入、数据展示、按钮点击等交互操作。
3. 高级组件:高级组件是Swing提供的一些特殊功能的组件,如JTable、JTree、JFileChooser等。
它们可以用于展示表格、树状结构、文件选择等复杂的用户交互功能。
四、事件处理为了响应用户的操作,GUI界面需要进行事件处理。
在JavaSwing中,事件处理分为两个阶段:事件生成和事件响应。
当用户与界面进行交互时,会生成相应的事件,如按钮点击、鼠标移动等。
开发人员需要实现事件的监听器,并在事件发生时触发相应的操作。
五、界面布局界面布局是指组件在容器中的排列方式。
在Swing中,界面布局主要通过布局管理器(Layout Manager)实现。
深入浅出java swing程序设计-概述说明以及解释
深入浅出java swing程序设计-概述说明以及解释1.引言1.1 概述Java Swing是一种用于构建图形用户界面(Graphical User Interface,简称GUI)的Java库。
它为开发人员提供了丰富的组件和布局管理器,可以轻松创建具有各种功能和样式的交互式应用程序。
Java Swing的出现填补了Java原生GUI工具包的不足,为开发人员提供了更多的自定义和灵活性。
与AWT(Abstract Window Toolkit)相比,Swing提供了更多的组件和界面控件,同时具备更好的跨平台性。
Java Swing不仅仅是一个图形用户界面库,它还提供了一整套用于处理用户输入、图形绘制、多媒体展示等功能的类和工具。
开发人员可以利用这些工具快速构建具有丰富交互性的应用程序。
本文将深入浅出地介绍Java Swing程序设计的基本概念和技巧。
我们将从Swing的组件和布局开始,逐步展示如何创建简单且功能强大的用户界面。
通过学习本文,读者将能够掌握Java Swing的核心知识,并能够利用这些知识开发出符合自己需求的应用程序。
本文的目的是帮助读者快速上手Java Swing,了解其基本概念和使用方法。
同时,我们也将展望Java Swing的未来发展,探讨其在现代应用程序开发中的重要性和应用前景。
在接下来的正文部分,我们将详细介绍Java Swing的基本概念,包括组件、事件、布局等内容。
同时,我们还将给出一些实际的例子,以便读者更好地理解和应用所学知识。
总之,本文将从大纲所列的各个方面对Java Swing进行深入浅出的探讨,旨在帮助读者全面了解和掌握Java Swing程序设计的基本技巧和应用方法。
希望读者能够通过本文的学习,具备自主开发Java Swing应用程序的能力,并能在实际项目中灵活应用所学知识。
1.2 文章结构本文主要以深入浅出的方式介绍Java Swing程序设计。
文章分为引言、正文和结论三个部分,每个部分有相应的小节。
JAVA开发培训讲义(Swing入门).ppt
JAVA开发培训讲义(Swing入门).pptSwing初级知识的事件机制桌面应用程序展示界面所用一套组件。
与平台无关丰富的层次结构适应编写丰富用户感受的界面是我们开发软件的最主要界面表现形式Component Container JComponentJCheckBox JRadioButton JButtonWindowFrame JFrameJMenuBarJToolBarJTabbedPanelJComboBoxJLabelJProcessBarJTableJTreeJTextField类型|长宽Key | Focus | paint上层组件的基类行高|颜色|字体|布局|类最基本的事件:Mouse|Key | Focus |paintpaintComponents(Graphics g)|如果有子组件8 int Sy = (rec.height -hh)/2;9 if ( im instanceof ImageIcon ){10 ImageIcon pImage = (ImageIcon)im;g.drawImage(pImage.getImage(), Sx, Sy,ww,hh,this);14 im.paintIcon( null,g2, Sx, Sy );2 public void mousePressed(MouseEvent e);3 public void mouseReleased(MouseEvent e);4 public void mouseEntered(MouseEvent e);Listener(…)加入事件侦听JComponent.addMouseListener( Listener(…)加入事件侦听JComponent.addKeyListener()加入事件侦听它组件|显示图片套的方式实现复杂界面布局于分组组件布局1 border1 = BorderFactory.createEtchedBorder(Color.white,new Color(148, 145, 140));2 titledBorder1 = new TitledBorder(border1,"带标题的Panel");容纳更多的信息图标、标题之前标签内容”);2 CLCaption.setText(“新的标签内容”);3 CLCaption.setIcon(…);2 CEField.addCaretListener(new CaretListener() {public void caretUpdate(CaretEvent e) {如果改变了内容,就可以即时更新label 显示的内容label.setText(textField.getText());8 CEField.select(0,0);。
swing组件和容器——javaswing组件技术(中)
swing组件和容器——javaswing组件技术(中)swing 组价和容器——java swing 组件和技术(中)⼀、swing组件和容器概览1.顶层容器(JFrame,JDialog,JApplet)JFrame—框架,主要⽤来设计应⽤程序的图像界⾯JDialog—对话框,通常⽤来设计具有依赖关系的窗⼝JApplet—⼩应⽤程序,主要⽤来设计嵌⼊⽹页中运⾏的java程序2.⼀般容器普通容器(JPanel、JScrollPane、JToolbar、JSplitPane、JTabbedPane) JPanel—⾯板,通常只有背景颜⾊的普通容器JScrollPane—滚动窗格,具有滚动条JToolbar—⼯具条,通常将多个组件排成⼀排或者⼀列JSplitPane—分裂窗格,⽤来装两个组件的容器JTabbedPane—选项卡窗格,允许多个组件共享相同的界⾯空间专⽤容器(JLayeredPane、JRootPane 、JInternalFrame)JLayeredPane—分层窗格,给窗格增加了深度的概念JRootPane—根窗格,⼀般是⾃动创建的容器JInternalFrame—内部窗格,可以在⼀个窗⼝内显⽰若⼲个类似于框架的窗⼝3.基本控件(JButton、JCombobox、JList、JMenu、JSlider、JTextField)4.不可编辑信息组件(JLabel、JProgressBar、JToolTip等)5.可编辑组件(JColorChooser、JFileChooser、Jtabel、JTextArea、JTree等)⼆、常⽤的swing组件和容器1.JFrame顶层容器,默认不可见;默认布局⽅式为BorderLayout构造函数:●JFrame()●JFrame(String title)//title 为框架的标题内容JFrame常⽤⽅法●setDefaultCloseOperation(int operation)—设置关闭框架的⾏为参数operation⼀般是JFrame. EXIT_ON_CLOSE,表⽰关闭框架时,则退出程序●setSize(int width, int height)—设置框架的⼤⼩●setVisible(boolean b)—设置框架是否可见,默认为false●getContentPane()—获取顶层容器的内容⾯板●add(Component comp)—往内容⾯板添加组件●setLayout(LayoutManagermgr)—设置布局⽅式,默认为BorderLayoutexample:JDialog 和JOptionPane的demo2.JDialog 和JOptionPanea)JDialog在已有的窗⼝上创建对话框,可以使⽤此类创建⾃定义的对话框构造函数:JDialog(Dialog owner, String title, boolean modal)JDialog(Frame owner, String title, boolean modal)owner—指定对话框的⽗窗⼝title—对话框的标题modal—对话框的模式(true为“有模式对话框”,false为“⽆模式对话框”JDialog常⽤⽅法setSize(int width, int height)—设置对话框的⼤⼩getContentPane()—获取顶层容器的内容⾯板add(Component comp)—往内容⾯板添加组件setLayout(LayoutManagermgr)—设置布局⽅式,默认为BorderLayoutb)JOptionPane提供⼀些现成的、各种常⽤的标准对话框(有模式的对话框)JOptionPane类⾥静态⽅法众多,但⼏乎所有静态⽅法都遵循showXxxDialog()的形式,如下:这四种⽅法的参数都遵循⼀致的模式:①ParentComponent:指⽰对话框的⽗窗⼝对象,⼀般为当前窗⼝。
java swing 入门教程
swing入门教程swing简介(2009-04-20 23:52:40)UI组件简介在开始学习Swing 之前,必须回答针对真正初学者的一个问题:什么是UI?初学者的答案是“用户界面”。
但是因为本教程的目标是要保证您不再只是个初学者,所以我们需要比这个定义更高级的定义。
所以,我再次提出这个问题:什么是UI?您可能把它定义成您按下的按钮、打字的地址栏、打开和关闭的窗口,等等,这些都是UI 的元素,但是除了在屏幕上看到的这些之外,还有更多都是UI 元素。
比如鼠标、键盘、音量、屏幕颜色、使用的字体,以及一个对象相对于另一个对象的位置,这些都包含在UI 之中。
实际上,在计算机和用户的交互之中扮演角色的任何对象都是UI 的组成部分。
这看起来足够简单,但是您应当惊讶的是,有许多人和大型公司已经为它努力了很多年。
实际上,现在有的大学专业的惟一课程就是研究这种交互。
Swing的角色Swing 是Java 平台的UI ——它充当处理用户和计算机之间全部交互的软件。
它实际上充当用户和计算机内部之间的中间人。
Swing 到底是如何做这项工作的呢?它提供了处理前面一节中描述的UI 各方面内容的机制:∙键盘:Swing 提供了捕捉用户输入的方法。
∙颜色:Swing 提供改变在屏幕上看到的颜色的方法。
∙打字的地址栏:Swing 提供了文本组件,处理所有普通任务。
音量:Swing 不太擅长。
无论如何,Swing 为您提供了创建自己的UI 所需要的所有工具MVCSwing 甚至走得更远一步,在基本的UI 原则之上又放上了一个公共的设计模式。
这个设计模式叫做模型-视图-控制器(Model-View-Controller,MVC),它试图“把角色分开”。
MVC 让负责显示的代码、处理数据的代码、对交互进行响应并驱动变化的代码彼此分离。
有点迷惑?如果我为这个设计模式提供一个现实世界的非技术性示例,它就比较容易了。
请想像一次时装秀。
JavaSwing使用总结(转载)
JavaSwing使⽤总结(转载)随笔转载⾃:地址:1. GUI编程引⾔以前的学习当中,我们都使⽤的是命令交互⽅式: 例如:在DOS命令⾏中通过javac java命令启动程序.软件的交互的⽅式: 1. 命令交互⽅式 图书管理系统 2. 图形交互⽅式 ava提供了专业的API⽤于开发图形⽤户界⾯ GUI--> Graphic User Interface 将要了解GUI API的框架结构,以及GUI组件以及组件之间的关系,容器和布局管理器,颜⾊,字体等.2. GUI的分类2.1. AWT Java1.0版本的图形⽤户界⾯库,设计⽬标是帮助程序员编写在所有平台上都能良好表现的GUI程序。
为了实现这个⽬标Java1.0提供了抽象窗⼝⼯具集(AWT),但是这个⽬标并没有达到。
AWT在所有的系统上表现都不好。
因为:最初版本的AWT是在⼀个⽉内构思,设计和实现的(Think in Java )。
Abstract Window Toolkit 抽象窗⼝⼯具集 Java将图形⽤户界⾯相关的类捆绑在了⼀起,放在了⼀个称之为抽象窗⼝⼯具集的库中.AWT适合开发简单的图形⽤户界⾯,并不适合开发复杂的GUI项⽬. 位于: java.awt.* 中,定义了很多的组件类,开发者可以直接创建对象加以使⽤ 缺点: 所有的图形界⾯都依赖于底层的操作系统,容易发⽣于特定平台相关的故障. AWT调⽤本地系统资源⽣成图形化界⾯, 依赖本地平台. 1.02.2. SwingSUN公司对AWT进⾏了升级,基于AWT,推出了⼀种更稳定,更通⽤和更灵活的库.称之为Swing组件库(Swing component)。
既然都是⽤于GUI设计的组件库,那么为了区分Swing组件类和对应的AWT组件类,Swing组件类都已字母J为前缀.位于:javax.swing.* 中,提供了和AWT中等同的所有的组件类,但是类名的前⾯多加了⼀个J.SWING可以跨平台. 1.2我们主要学习Swing GUI组件.3. Java GUI APIGUI API包含的类分为三个部分:组件类(component class) 容器类(container class),和辅助类(helper class)1. 组件类是⽤来创建⽤户图形界⾯的,例如JButton,JLabel,JTextField.2. 容器类是⽤来包含其他组件的,例如JFrame,JPanel3. 辅助类是⽤来⽀持GUI组件的,例如Color,Font3.1. 组件类在图形⽤户界⾯程序中当我们想要创建按钮、复选框和滚动条等这些可以显⽰在屏幕上的对象,该如何创建。
Java Swing概述
Java Swing概述Swing具有更丰富而且更加方便的用户界面元素集合,Swing对于底层平台的依赖更少。
在Swing中,开发了一个经过仔细设计的、灵活而强大的GUI工具包。
1 什么是Swing在1995年,Java第一次发布的时候,它包含了一个叫AWT(Abstract Windowing Toolkit)的库,用来构建图形用户界面应用程序。
AWT是一个非常简单的具有有限GUI(Graphics User Interface,即图形用户界面)组件、布局管理器和事件的工具包。
最终不幸是,有些经常使用的组件,如表、树、进度条等都不支持。
对于需要更多组件类型的应用程序来说,用户需要从头开始创建这些组件,造成开发很大的负担。
由于AWT自身的不足,后来于1997年,在JavaOne大会上提出并在1998年发布了JFC(Java Foundation Classes)中包含了一个新GUI组件,即Swing。
Swing将对主机控件的依赖性降至了最低,只为诸如窗口和框架之类的顶层控件使用对等体。
大部分控件(JComponent及其子类)都是使用纯Java代码来模拟的。
这意味着Swing就可以在主机之间很好地进行移植。
Swing组件超越了简单的窗口部件,它体现了正不断出现的设计模式以及一些最佳实践。
采用Swing,不仅仅得到GUI窗口部件的句柄和它所包含的数据,而是定义一个模型去保存数据,定义一个视图去显示数据,定义一个控制器去响应用户输入。
事实上,大部分Swing组件的构建是基于MVC(Model-View-Controller)模式的。
MVC使应用程序开发变得更清晰,更易维护和管理。
但是,Swing无法充分利用硬件GUI加速器和专用主机GUI操作等优势,所以在开发的应用程序上,可能比本地GUI的程序运行速度都慢。
后来,Sun公司花费大量的精力来改进其性能。
除了具有更多的组件、布局管理器和事件之外,Swing还有很多特性使得自己比AWT的功能更加强大。
java中swing的用法
java中swing的用法Swing是Java中的一种GUI(图形用户界面)工具包,它是基于AWT(抽象窗口工具箱)开发的。
和AWT不同的是,Swing使用了Java 2D API来实现自己的用户界面元素,这使得Swing的外观和感觉更加现代化,更加灵活。
2. Swing的优点Swing的优点主要有以下几点:- 跨平台性:Swing是基于Java开发的,因此可以在任何支持Java的平台上运行,如Windows、Linux、Unix等。
- 灵活性:Swing提供了丰富的组件,开发者可以通过组合不同的组件来创建非常复杂的用户界面。
- 动态性:Swing提供了一些动画和效果来增强用户体验。
- 可定制性:Swing的外观和感觉可以通过使用不同的Look and Feel来改变,而这些Look and Feel可以在运行时动态地切换。
- 易学易用:Swing的API设计合理,很容易学习和使用。
3. Swing的组件Swing提供了很多组件,下面列举了一些常用的组件:- JLabel:标签组件,用于显示文本或图像。
- JButton:按钮组件,用于触发事件。
- JTextField:文本框组件,用于输入文本。
- JPasswordField:密码框组件,用于输入密码。
- JTextArea:文本域组件,用于显示多行文本。
- JList:列表组件,用于显示列表数据。
- JTable:表格组件,用于显示表格数据。
- JComboBox:下拉列表组件,用于选择一个选项。
- JCheckBox:复选框组件,用于选择多个选项中的一个或多个。
- JRadioButton:单选按钮组件,用于选择一个选项。
4. Swing的布局管理器在Swing中,布局管理器用于控制组件的排列。
Swing提供了多种布局管理器,下面列举了一些常用的布局管理器:- BorderLayout:边框布局管理器,将容器分成5个区域:北、南、东、西、中。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
方法将控件放到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是轻 量级组件,不能单独显示