javaSwing总结
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
语默制造
设置窗体
import javax.swing.*;//导入Swing包 //继承JFrame类 public class SetSwing03 extends JFrame { //定义构造器 public SetSwing03() { this.setTitle("通过继承创建窗口");//设置窗口标题 this.setBounds(300,250,300,200);//设置窗口的大小和位置 this.setResizable(true);//设置窗口不能被调整大小 this.setVisible(true);//设置窗口是可见的 } public static void main(String args[]) { new SetSwing03(); } }
语默制造
创建简单窗体
import javax.swing.*;//导入Swing包 public class Swing2 { public static void main(String args[]) { JFrame jf=new JFrame();//创建JFrame类构造器 jf.setTitle("直接使用JFrame窗口类");//设置窗口的名称 jf.setBounds(300,250,300,200);//设置窗口的大小和位置 jf.setVisible(true);//设置窗口可见性 } }
创建一个中间容器,在这个容器中添加组件,再用setContentPane()方法把这个 容器置为JFrame的内容面板。
关于这两个方法,虽然已经没有人提起了,但是它给我们开发界面设计带来的困惑 是最多的。
语默制造
JComponent类功能图
不可显示组件
Tooltips工具 提示功能 绘画边框功 能 可插入的观 感器 自定义属性 Layout支持 JComponent 功能特性
无障碍功能 拖曳支持 双缓冲 键绑定
语默制造
JPanel面板类简介
面板组件分类:
Jpanel——面板 JScrollPane——滚动面板,这个词儿就是传说中的卷轴的意思。 JSplitPane——分隔板 JTabbedPane——选项板 JInternalFrame——内部框架 JLayeredPane
语默制造
设置窗体
•
• • • • •
在JFrame窗口类中还有一个很重要的方法,那就是 setDefaultCloseOperation方法。使用该方法可以设置当单击关闭按钮关闭 窗口时所执行的动作。这里的动作包括4种情况,分别对应着4个常量。 DO_NOTHING_ON_CLOSE 不执行任何动作 DISPOSE_ON_CLOSE 释放窗体对象 HIDE_ON_CLOSE 隐藏窗体 EXIT_ON_CLOSE 退出JVM 提示:如果不使用setDefaultCloseOperation方法进行设置,默认值为 HIDE_ON_CLOSE,也就是在默认情况下单击关闭按钮将会使窗口隐藏。
AWT与Swing(了解)
1、本章内容概述
• Swing是一门开发桌面程序的技术。在本章中读者将学到如何开发界面程序, 这要比前面学习的程序有意思的多。在本章中将对Swing的知识按从浅到深的顺 序依次进行讲解。读者通过本章的学习,应该完成如下几个目标。 • • • 了解Swing开发的基本过程。 掌握如何创建窗口、面板、标签和按钮。 掌握和熟练使用Swing中的事件。
语默制造
JFrame窗口类
在Swing程序中,窗口是一个容器,在该容器中可以放其他一些组件。学习 JFrame窗口类是学习其他组件的基础。在Swing程序中创建窗口可以使用继承 JFrame类来完成。
语默制造
JFrame窗口类简介
• 在开发的Swing程序中,通常是通过继承JFrame窗口类来实现窗口的。在 该类中具有很多很有用的方法,包括定义窗口标题、标框,以及窗口的 大小和位置。在介绍这些方法之前,先来介绍一下JFrame窗口类的构造 器。JFrame窗口类具有四种构造器。 最常用的JFrame窗口类的构造器是无参构造器,使用该构造器将创建一 个初始不可见的新窗体。除此之外还有具有一个String类参数的构造器, 使用该构造器能够在初始时就创建一个具有标题的新窗体。还有两种需 要给出图形配置参数的构造器,这两种构造器在本书中不进行介绍。 创建新窗口后,就可以通过JFrame窗口类的方法来设置新窗口。首先使 用无参构造器创建的是一个不可见的新窗体,所以要使用方法来将窗体 设置为可见的形式。在JFrame窗口类中定义了一个setVisible方法来设 置窗口的可见性,该方法具有一个布尔型参数,true表示可见,false表 示不可见。将初始状态下的窗口设置为不可见是有原因的,因为有很多 对窗口的操作需要在窗口不可见的状态下执行,从而setVisible方法通 过在程序的最后执行。
语默制造
总结Jframe窗体
在上述开发过程中使用过的Jframe类方法: setLayout(null);//设置布局管理器 add(jl);//增加面板层 setBounds(300,250,500,200);//设置窗口的大小和位置 setVisible(true);//设置窗口是可见的 setTitle("直接使用JFrame窗口类");//设置窗口的名称 setResizable(true);//设置窗口不能被调整大小 实际上Jframe还包含了很多方法,详细方法请查阅Jframe类的API。
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); //设置窗口是可见的 } public static void main(String args[]) { new Swing1(); } }
语默制造
Swing程序设计流程
必须掌握!!!
Swing的程序设计一般可按照下列流程进行: 1. 引入Swing包 2. 选择"外观和感觉" 3. 设置顶层容器 4. 设置按钮和标签 5. 向容器中添加组件 6. 在组件周围添加边界 7. 进行事件处理
语默制造
Swing组件类的层次
Component Container
语默制造
设置窗体
•
•
有些读者会认为该结果是和上面程序的运行结果图一样的,其实不然。 该运行结果中的窗体是不能最大化的,这主要是由于在程序中使用 setResizable方法的参数为false,使得窗口不能调整大小,从而也就使窗 口不能最大化。如果试图通过鼠标来调整大小,也是不能成功的。 提示:在JFrame窗口类中还有一个setUndecorated方法,使用该方法可以 将窗体的边框和标题栏去掉。
语默制造
AWT与Swing(了解)
AWT:AWT 是抽象窗口工具集(Abstract Window Toolkit)的英文缩写。为用户界面程序提供所需要的组件,
例如按钮、标签、复选框、下拉菜单、画布、文本输入区、列表等。此外,AWT还提供事件类、监听器类、图形 处理工具、2D 图形等的支持。AWT 存在缺少剪贴板、打印支持等缺陷,甚至没有弹出式菜单和滚动窗口等。
中间组件类
基本组件类 JButton、 JComboBox、 JList、
中间容器类
特殊中间容器类
JPanel、 JScrollPane、 JSplitPane、 JToolBar
JInternalFrame、 JLayeredPane、 JRootPane
JMenu、 JSlider、 JTextField
不可独立 显示的组 件
Window JComponent
可以独立 显示的组 件
Frame Jpanel JTable JTree
Dialog
JTextAr ea
…
JFrame
JDialog
语默制造
Swing组件类的层次
Swing组件
顶层组件类 JFrame、 JApplet、 JDialog、 JWindow
•
•
语默制造
开发第一个Swing程序
•
在JFrame窗口类中有个setTitle方法,该方法需要一个字符型参数。使用 setTitle方法可以设置窗口的名称;还有一个setBounds方法,该方法具有 4个参数,前两个参数分别表示窗口位置的横坐标和纵坐标,后两个参数 分别表示窗口大小的宽度和高度。JFrame窗口类最重要的方法就是add方 法,使用该方法可以将组件添加到窗口中。这些都是比较常用的JFrame 窗口类的方法。
•
在本程序中直接使用JFrame窗口类来创建一个窗体。首先创建一个 JFrame类对象,然后调用JFrame类中的方法。在本程序中使用setTitle方 法来设置窗口的名称,使用setBounds方法来设置窗口的大小和位置,使 用setVisible方法来设置窗口的可见性。这种方法只是创建一个简单窗口 时需要的,如果创建一个复杂的窗口,使用这种方法就会使程序变的非 常复杂难理解。
功能
包括所有AWT的功能,并用纯粹的Java代 码进行了扩展,能够实现需要的所有UI功 能。
轻量级
ቤተ መጻሕፍቲ ባይዱ
控件
语默制造
开发第一个Swing程序
• • • • • • • • • • • • • • • • • • • •
01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20
语默制造
JPanel面板类简介
面板(JPanel)是一个轻量容器组件,用法与Panel相同,用于容纳界面元 素,以便在布局管理器的设置下可容 纳更多的组件,实现容器的嵌套。Jpanel, JscrollPane, JsplitPane, JinteralFrame都属于常用的中间容器,是轻量组件。 Jpanel的缺省布局管理器是FlowLayout。 java.lang.Object | +--java.awt.Component | +--java.awt.Container | +--javax.swing.JComponent | +--javax.swing.JPanel
语默制造
Jframe之我见
Swing主要就用 这些 JFrame
RootPane GlassPane ContentPane MenuBar
基本组件
这个地方的设计有点变态,后边会提到
语默制造
Swing添加组件的两种方式
用getContentPane()方法获得JFrame的内容面板,在这个内容面板上添加组件。
Swing :不是真正使用原生平台提供设备,而是仅仅在模仿,因此可以在任何平台上使用Swing 图形用户
界面组件。Swing 绝大部分组件都是轻量级组件,它不像重量级组件那样必须在它们自己本地窗口中绘制, 而是在它们所在的重量级窗口中绘制。它比AWT适应性更强。
Swing与AWT的对比
AWT 图形库 与本地操作系统提供的 图形函数库一一对应 是不同操作系统提供的 图形功能的交集 重量级 Swing 平台无关性
语默制造
开发第一个Swing程序
第一次看到该程序可能会觉得很复杂,其实其中都是很基础的内容,在以后的Swing程序 中也会重复使用。在该程序中,首先要导入Swing包,然后继承该包中的JFrame类,使用该类 才能使运行结果出现界面的形式。在程序中需要定义一个构造器,在构造器中首先要设置布 局管理器,该程序没有使用布局管理器,布局管理器的知识会在后面用一章的内容来进行讲 解。然后就是定义了一个用于显示文字的标签。在最后还需要设置窗口的大小和位置,以及 可见性。 从第一个Swing程序可以看出,运行结果不再是以前在黑屏中显示信息,而是在界面中显 示信息。这里的信息不只包括文字信息,也包括以后将要学到的一些组件信息。