常用swing组件
第11章 Swing组件
11.4 Swing高级组件
除了基本组件之外,Swing还提供了很多高级组件,以 帮助程序员创建更加复杂但更加有表现力的应用程序。这些 高级组件包括可以交互式显示高度格式化信息的组件,如颜 色选择器、表和树等,也包括非顶层的容器组件和具有特殊 用途的窗口组件。
11.4.1 颜色选择器JColorChooser
11.3.2 进度条组件JProgressBar
进度条(JProgressBar):可用值范围构建 JProgressBar,用setValue和setString更改进度和文字,用 setStringPainted显示文字;进度条可能是不确定的,等到可 以确定时用setIndeterminate变回来(适合于复杂控制、多 进度条、重用的场合);高级进度监视器ProgressMonitor ,用parent、title、note和min、max构建,用setProgress和 setNote更新状态,isCanceled判断是否取消, setMillisToPopup显示延迟时间(适合于简单提示、易于取 消的场合);另外还有ProgressMonitorInputStream包装流 ,如果读取费时超过延迟时间会显示进度框。有时,在一个 程序中运行的任务可能会持续一些时间才能完成。用户友好 的程序应该对用户一些提示,以说明任务可能需要多长时间 ,Swing提供了JprogressBar用来显示总任务已经完成了多 少。
11.2.7 滑块组件JSlider
滑块(JSlider):有水平或垂直样式,有大小标尺及 标签,使用ChangeListener(当getValueIsAdjusting为假时 ),用setLabelTable(HashTable<Integer,JLabel>)自定义标 签,或使用createStandardLabels创建等距标签,通常滑块 和JFormattedTextField配对而精确定位数值( NumberFormatter(NumberFormat.getIntegerInstance())) 。Jslider是一个让用户以图形方式在有界区间内通过移动滑 块来选择值的组件。滑块可以显示主刻度标记和次刻度标记 。
Swing类组件大全
Swing类组件大全
==几个重要的类-==
JComponent 类,所有以下组件的父类
JFrame类,创建窗体
JApplet类,创建小型应用程序(好像是适配器吧)
==窗口组件===
JButton ,Jlabel, JCheckBox 可以直接添加Icon图片,Jlist不可直接添加
JLabel标签
JButton 按钮监视器addActionListener()
JList滚动列表监视器addItemListener()和addActionListener() JTxtFiled文本框监视器addActionListener()
JPasswordFiled密码框监视器addActionListener()
JTxtArea文本域监视器addTextListener()
JCheckBox复选框监视器addItemListener()
JComboBox下拉列表监视器addItemListener()
单选按钮组,把单选钮添加到一个单选组里,那么这些单选钮只有一个能被选上
ButtonGroup l=new ButtonGroup();
JRadioButton q=new JRadioButton("fsd",true);
l.add(q);
c.add(q);
JTable表格
JFileChooser文件选择器
JProgressBar进度条
JMenuBar菜单栏
JMenu条JMenuItem项JToolBar工具条
JTree树
===中间容器==== JPanel面板JScrollPane滚动窗格JSplitPane拆分窗格JInternalFrame内部窗体。
第08章+常用Swing组件
Java程序设计
第8章 常用Swing组件
8.1.3文本组件
1.JTextField
它是一个单行文本输入框,可输出任何文本的信息,也可以接 受用户输入。
(1) JTextField常用的构造方法 ① JTextField() 用于创建一个空的文本框,一般作为输入框; ② JTextField (int columns) 构造一个具有指定列数的空文本框 ③ JTextField (String text)构造一个显示指定字符的文本框,作 为输出框; ④ JTextField(String text, int columns) 构造一个具有指定列数、 并显示指定初始字符串的文本域 。
Java程序设计 第8章 常用Swing组件
3.组件的大小与位置
public void setSize(int width,int height) 设置组件的大小, 参数width指定组件的宽度,height指定组件的高度。 public void setLocation(int x,int y) 设置组件在容器中的位 置,容器的坐标系的左上角的坐标是(0,0),参数x,y指定该 组件距容器的左边界 x个像素,距容器的上边界 y 个像素。 public Dimension getSize() 方法返回的Dimension 对象的 width的值就是组件的宽度、height的值就是当前组件的 高度。 public Point getLocation() 方法返回的Point对象的x,y的 值就是组件的左上角在容器的坐标系中的x坐标和y坐标。
Java程序设计
第8章 常用Swing组件
JTextComponent一些方法
getSelectedText() ——从文本组件中提取被选中的文本内容
tp14swing组件
进度条JProgressBar
2. 常用方法
方法
int getMaximum() int getMaximum() int getOrientation()
double getPercentComplete() String getString() int getValue() boolean isStringPainted() void setMaximum(int max) void setMinimum(int min) void setOrientation(int direct)
| +--javax.swing.JProgressBar 1. 构造函数 格式:JProgressBar () 功能:建立一个水平方向的进度条JProgressBar对象,其变化范围是0到100。 格式:JProgressBar (int direct) 功能:建立一个方向为direct的进度条JProgressBar对象,其变化范围是0到100。 格式:JProgressBar (int min,int max) 功能:建立一个水平方向的进度条JProgressBar对象,其范围是min到max。 格式:JProgressBar (int direct ,int min,int max) 功能:建一个方向为direct的进度条JProgressBar对象,其范围是min到max。
JComboBox jcb=new JComboBox (stu); 这就创建了一个下拉列表框jcb,其初始数据有4项,分别为:“王小平”,”刘
国军”,”吴芬”,”李建军”。 2.常用方法
下拉列表框JComboBox
方法
void addItem(Object itm) void insertItemAt(Object itm,int idx) void removeItemAt(int idx) void removeItem(Object itm) void removeAllItems() Object getItemAt(int idx) int getItemCount() int getSelectedI次关系为: ng.Object | +ponent
java swing常用的9种组件
在Java1.0中,已经有一个用于GUI编程的类库AWT(Abstract Window Toolkit),称之为抽象窗口工具箱。
遗憾的是,AWT中的组件(例如按钮,类名为Button)在实现中使用了本地代码(Native Code),这些组件的创建和行为是由应用程序所在平台上的本地GUI工具来处理的。
因此,AWT组件要在不同的平台上提供给用户一致的行为就受到了很大的限制。
同时,AWT组件中还存在很多bug,这就使得使用AWT来开发跨平台的GUI应用程序困难重重。
1996年,SUN公司和Netsacpe公司在一个称为Swing的项目中合作完善了Netsacpe公司原来开发的一套GUI库,也就是现在所谓的Swing组件。
Swing组件和原来的AWT组件完全不同,最大的区别就是Swing组件的实现中没有使用本地代码,这样对底层平台的依赖型就大为降低,并且可以给不同平台的用户一致的感觉。
此外,和原来的AWT相比,Swing 中提供了内容更多、使用更为方便的组件。
在阅读一些书籍时,常会遇到名词JFC(Java Foundation Class)。
JFC的概念是在1997年的JavaOne开发者大会上首次提出的,是指用于构建GUI的一组API。
实际上,Swing只是JFC的一部分,其它的还有二维图形(Java 2D)API以及拖放(Drag and Drop)API等等。
Swing并不是完全取代了AWT,Swing只是使用更好的GUI组件(如JButton)代替AWT 中相应的GUI组件(如Button),并且增加了一些AWT中原来所没有的GUI组件。
并且,Swing 仍使用AWT 1.1的事件处理模型。
虽然现在AWT组件仍得到支持,但是建议在你的应用程序中尽量使用Swing组件和1.1的事件模型。
1.标签(JLabel)标签(JLabel)通常是用来标识另外一个组件的含义。
以在标签上显示文字、图象或是文字图象的组合。
第11章 Swing组件
11.1 Swing组件介绍
第11章 Swing组件
Swing是AWT的扩展。 这些组件包括与AWT包中类似的按钮 JButton、复选框JCheckBox、标签JLable 、文本框JTextField和JTextArea等,选项板 JComboBox、单选按钮JRadioButton、树 JTree、表格JTable和工具栏JToolBar等。
图11-3 简易计算器
11.3 综合运用实例
问题实现: •该实例中定义MyCalculatorSwing类。
第11章 Swing组件
•首要工作是根据问题描述来设计界面,创建界面中所需的各种组件,这个工作 在构造方法中完成。 •第二项也是最重要的个工作就需要响应执行本程序时可能出现的各种按钮事件。 •按钮事件监听器接口中的抽象方法actionPerformed, ShowNum方法, equal方法。
第11章 Sw,JRadioButton单选项 组件
•【例11-2】多选项和单选项组件的应用。
11.3 综合运用实例
【实例11】
问题描述:
第11章 Swing组件
•计算器程序界面上的组件包括10个数字按钮(0~9)、 4个运算按钮(+、-、*、/)、1个清空按钮(C)、等号按钮(=) 和用于显示数值的文本框。 •使用该界面中的各个按钮以实现简单的四则运算功能。
第11章 Swing组件
第11章 Swing组件
第11章 Swing组件
11.1 Swing组件介绍 11.2 Swing常见组件的使用 11.3 综合运用实例
11.1 Swing组件介绍
• 软件包javax.swing。
第11章 Swing组件
• Swing组件,也被称之为“轻量级”( lightweight)组件。
逐步掌握JavaSwingUI界面设计
逐步掌握JavaSwingUI界面设计一、Swing界面设计概述Java Swing UI界面设计是Java语言中常用的图形用户界面(GUI)设计工具。
它提供了一系列的组件和容器,可以帮助开发人员创建出美观、交互性强的用户界面。
本文将介绍逐步掌握Java Swing UI界面设计的相关内容。
二、基础知识与组件1. Swing组件分类Java Swing UI界面设计中,可以使用多种不同类型的组件构建用户界面。
常用的Swing组件包括按钮、标签、文本框、下拉列表、菜单等。
这些组件可以通过布局管理器灵活地组合在一起,实现不同样式和功能的用户界面。
2. 布局管理器布局管理器是Java Swing UI界面设计中非常重要的一部分。
它负责决定组件在容器中的位置和大小。
Java Swing提供了多种布局管理器,如流式布局、边界布局、网格布局等。
开发人员可以根据具体需求选择适合的布局管理器,并结合组件的特性进行布局设计。
3. 事件处理在用户界面中,用户的交互行为会触发相应的事件,如点击按钮、选择菜单等。
Java Swing提供了事件模型和事件监听器机制,开发人员可以通过注册监听器来捕获和处理这些事件。
事件处理是Java Swing UI界面设计中的重要环节,可以实现用户交互的逻辑功能。
三、界面设计实例1. 登录界面设计以登录界面为例,介绍如何使用Java Swing进行界面设计。
首先,通过各种组件创建登录界面的基本元素,包括标签、文本框和按钮等。
然后,选择合适的布局管理器,将这些组件适当地放置在面板中。
接下来,通过事件监听器,实现登录按钮的点击事件,验证用户输入的用户名和密码是否正确,并进行相应的操作,如弹出提示框或跳转至其他界面。
2. 菜单设计菜单是用户界面中常见的功能区域,可以实现各种操作的选择和执行。
在Java Swing界面设计中,可以使用菜单条、菜单和菜单项等组件构建菜单。
通过设置相应的监听器,可以捕获菜单项的点击事件,并执行相应的功能操作。
第01章 Swing基本组件
说
设置标签上的文本
明
String getText() void setIcon(Icon icon)
JButton的常用方法
方法原型
void setText(String text) String getText() void setBackground(Color bg) Color getBackground() 设置按钮上的文本 获得按钮上的文本 设置按钮的背景色 获得按钮的背景色
说
明
void setEnabled(boolean b)
常 Color.BLACK Color.CYAN Color.GRAY
量
Color.LIGHT_GRAY Color.ORANGE
Color.RED
Color.YELLOW
红色
黄色
Color.WHITE
白色
javax.swing.JDialog
JDialog用于在程序中创建对话框组件,对于多窗口的程
构 造 方 法
说
明
JFrame()
创建新窗体,该窗体初始为不可见
JFrame(String title)
创建新窗体,使用参数title指定标题,该窗体初始为不可见
JFrame常用方法
方法原型
void setTitle(String title) void setSize(int width, int height) void setResizable(boolean resizable) void setVisible(boolean b) Container getContentPane() void setDefaultCloseOperation(int operation) void dispose() void repaint()
Swing组件大全
一抛砖引玉本文指在利用一个小程序”Swing 组件大全”来引导大家学习Java这门语言,熟悉Ja va Swing的各个组件。
并在学习过程中参考作者设计这一程序的方法和思想,最终形成自己的思维方式和学习方式。
你能举一返三是作者最开心的事情。
小程序演示了Java Swing 大部分组件。
最后附上了全部代码及详细的注释说明。
希望本文能对大家学习Java有所帮助。
随着Java风潮席卷国内,学习Java的方法和路径越来越多。
而在大量的书本前,在J ava庞大的类库前大大家都有点迷失方向的感觉,是学J2EE,J2ME还是。
然而所有的这些都或多或少的离不开J2SE。
万丈高楼平地起。
J2SE是整个Java的基础,学好了这个对Java的各个方向都是很有利的。
而学习J2SE的最初点就在界面设计,因为界面编程是你来感觉最直接的手段,是提高大家编程兴趣的很好开始,因为你写完程序编译后可马上看到自己的成果。
而不像后台编程做完了都感受不到效果。
而好的界面也是你测试你其他程序的基础。
界面设计!不就是拖拉操作吗?如果是VB,VC等可视化的编程,的确只是一些拖拉操作,由于Java语言的设计中所有的东西都是程序代码,在Java中如果想要设计一个好的界面,可不是简单的拖拉操作能完成的。
即使使用了如JBuilder这么强大的可视化工具,你也得亲自动手写一些界面设计代码才能很好的完成你的任务。
如果你能在此基础上理解Java界面设计的思想,对你学习这门语言将有莫大的帮助。
Java界面设计主要涉及Awt,Swing两大类库,Swing是Awt的扩展和功能加强。
下面我们就以Swing为基础来说说整个Java的界面设计。
二感受效果在开始之前,让我们看看这篇文章要达到的效果,有了目标和成果才有学习的兴趣,起码我是这样认为和学习的。
如下图所示,这就是我们设计的界面,它包括了Swing中大部分常用的组件。
有些功能界面上反映不出来,大家可尝试编译源代码点南击各个部分,看看它们的响应事件。
swing组件及其用法
swing组件及其用法Swing组件是用于创建图形用户界面的Java库。
它提供了丰富的界面元素和布局管理器,可以实现各种图形界面应用程序。
下面是一些常用的Swing组件及其用法:1. JFrame:顶层窗口组件,用于创建一个窗口。
用法示例:```javaJFrame frame = new JFrame("My Frame");frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); frame.setSize(500, 300);frame.setVisible(true);```2. JPanel:容器组件,用于组织其他组件。
用法示例:```javaJPanel panel = new JPanel();panel.setLayout(new FlowLayout());panel.add(new JButton("Button 1"));panel.add(new JButton("Button 2"));```3. JButton:按钮组件,用于触发动作。
用法示例:```javaJButton button = new JButton("Click me");button.addActionListener(e -> System.out.println("Buttonclicked"));```4. JLabel:标签组件,用于显示文本或图像。
用法示例:```javaJLabel label = new JLabel("Hello, world!");label.setIcon(new ImageIcon("image.png"));```5. JTextField:文本输入框组件,用于接收用户输入。
java语言中awt和swing组件的基本用法
java语言中awt和swing组件的基本用法Java语言中AWT和Swing组件是用于创建图形用户界面(GUI)的工具。
AWT(Abstract Window Toolkit)是Java最早提供的GUI工具包,而Swing是在AWT基础上进行了扩展和改进的高级GUI工具包。
本文将介绍AWT和Swing组件的基本用法。
一、AWT组件的基本用法AWT组件是Java中最基本的GUI组件,它们在不同的平台上都能够保持一致的外观和行为。
下面是AWT常用组件的基本用法:1. Frame(窗口):使用Frame类可以创建一个基本的窗口。
可以调用setTitle()方法设置窗口标题,setSize()方法设置窗口大小,setVisible()方法显示窗口。
例如:```javaFrame frame = new Frame("My Window");frame.setSize(400, 300);frame.setVisible(true);```2. Panel(面板):Panel是一个容器,用于存放其他组件。
可以使用add()方法将其他组件添加到Panel中。
例如:```javaPanel panel = new Panel();Button button = new Button("Click Me");panel.add(button);```3. Button(按钮):Button用于触发特定的动作。
可以使用addActionListener()方法为按钮添加动作监听器。
例如:```javaButton button = new Button("Click Me");button.addActionListener(new ActionListener() {public void actionPerformed(ActionEvent e) {System.out.println("Button Clicked");}});```4. Label(标签):Label用于显示文本信息。
常用Swing组件
JTabbedPane类的构造方法有: 类的构造方法有: 类的构造方法有 JTabbedPane() 创 建 空 对 象 , 该 对 象 具 有 缺 省 的 标 签 位 置 JTabbedPane.TOP 和缺省的布局策略JTabbedPane.WRAP_TAB_LAYOUT。 。 和缺省的布局策略 JTabbedPane(int tabPlacement)创建空对象,该对象具有指定 创建空对象, 创建空对象 的标签位置:JTabbedPane.TOP、JTabbedPane.BOTTOM、 的标签位置: 、 、 JTabbedPane.LEFT 或 JTabbedPane.RIGHT 以 及 缺 省 的 布 局策略JTabbedPane.WRAP_TAB_LAYOUT。 局策略 。 JTabbedPane(int tabPlacement, int tabLayoutPolicy)创建空对 创建空对 象 , 该对象具有指定的标签位置和布局策略。 布局策略可 该对象具有指定的标签位置和布局策略 。 以是以下两种之一: 以是以下两种之一 : JTabbedPane.WRAP_TAB_LAYOUT 或 JTabbedPane.SCROLL_TAB_LAYOUT。加滚动条 。
javax.swing.JPane 类继承于 类继承于javax.swing.JComponent 类 , 其构 造 其 构造 方法有: 方法有: JPanel() 创建具有缺省 创建具有缺省FlowLayout布局的 布局的JPanel对象。 对象。 布局的 对象 JPanel(LayoutManager layout) 创 建 具 有 指 定 布 局 管 理 器 的 JPanel对象。 对象。 对象 作为画布的绘画区域使用时, 将JPanel作为画布的绘画区域使用时, 要使用下面的两个步骤 : 作为画布的绘画区域使用时 要使用下面的两个步骤: 首先,设置画布绘图区域的大小;其次,使 用 paintComponent()方法 ( 不是 方法( 方法) 方法 不是paint()方法) 来绘图 , 在该方法 方法 来绘图, 体中, 首先调用方法super.paintComponent( ) 来清除显示区 体中 , 首先调用方法 ( 域。
JavaGUI编程与Swing库
JavaGUI编程与Swing库Java是一种功能强大的编程语言,被广泛用于开发各种应用程序。
GUI(图形用户界面)是一种用户通过图形方式与计算机进行交互的界面。
Java 提供了丰富的GUI编程工具,其中最常用的就是Swing库。
本文将深入探讨JavaGUI编程与Swing库的相关知识。
一、Swing库概述Swing是Java中的一个GUI工具包,提供了一系列的组件和容器来构建各种类型的窗口和用户界面。
Swing库的优点在于其跨平台性能,可以在不同操作系统上运行,并且提供了丰富的可自定义组件。
Swing库使用面向对象的设计模式,易于学习和使用。
二、Swing组件1. JFrame类JFrame是Swing库中最常用的顶层容器组件,用于创建窗口。
可以通过JFrame类的构造方法和方法设置窗口的大小、标题、布局等属性。
2. JPanel类JPanel是Swing库中的一个容器组件,用于放置其他组件。
可以通过JPanel类的构造方法和方法设置面板的布局、背景颜色等属性。
3. JButton类JButton是Swing库中的一个常用按钮组件,用于触发特定的操作。
可以通过JButton类的构造方法和方法设置按钮的文本、图标、事件监听等属性。
4. JLabel类JLabel是Swing库中的一个标签组件,用于显示文本或图像。
可以通过JLabel类的构造方法和方法设置标签的文本、图像、字体等属性。
5. JTextField类JTextField是Swing库中的一个文本框组件,用于接收用户的输入。
可以通过JTextField类的构造方法和方法设置文本框的大小、内容、是否可编辑等属性。
6. JCheckBox类JCheckBox是Swing库中的一个复选框组件,用于提供多个选项供用户选择。
可以通过JCheckBox类的构造方法和方法设置复选框的文本、选中状态等属性。
7. JRadioButton类JRadioButton是Swing库中的一个单选按钮组件,用于提供多个选项供用户选择,但只能选择一个。
awt和swing组件的基本用法
AWT和Swing都是Java中用于创建图形用户界面(GUI)的工具。
它们提供了一系列的组件和容器,可以用来创建和管理用户界面元素。
AWT(Abstract Window Toolkit)是Java提供的原始GUI工具包,它包含了许多用于创建GUI组件和容器的类。
Swing则是在AWT的基础上提供了一系列的增强功能和改进,包括更好的组件、更强大的布局管理器以及改进的事件处理等。
下面分别介绍AWT和Swing的一些基本组件和用法:AWT组件:1. 组件(Component):这是所有GUI组件的基类,包括按钮、标签、文本框等。
可以使用add()方法将组件添加到容器中。
2. 容器(Container):容器是一种特殊的组件,可以包含其他组件。
可以使用add()方法将组件添加到容器中。
3. 布局管理器(LayoutManager):布局管理器用于控制组件在容器中的布局方式。
AWT提供了几种布局管理器,如BorderLayout、FlowLayout、GridLayout等。
示例代码:```javaimport java.awt.*;import java.awt.event.*;public class MyAWTDemo {public static void main(String[] args) {Frame frame = new Frame(); // 创建一个Frame窗口frame.setTitle("JavaGUIComponent"); // 设置窗口标题 frame.setBounds(20, 30, 300, 280); // 设置窗口大小和位置frame.setVisible(true); // 设置窗口为可见Button button = new Button("Click me!"); // 创建一个按钮frame.add(button); // 将按钮添加到Frame窗口中frame.addWindowListener(new WindowAdapter() { // 添加窗口关闭事件监听器public void windowClosing(WindowEvent e) {System.exit(0); // 关闭应用程序}});}}```Swing组件:1. JComponent:这是Swing中所有组件的基类,继承自AWT的Component类。
Swing常用组件
Swing对话框-JDialog
• 对话框也是编写GUI程序中经常使用到的顶 层容器。 • JDialog类扩展了java.awt.Dialog类。下 面使用JDialog创建了一个最简单的对话框, 代码如下:
JDialog区分模式对话框和非模式对话框
• 非模式对话框允许用户同时在对话框和程 序的主窗口中输入信息; • 模式对话框在处理完之前不能与程序的主 窗口进行交互。 • 创建一个模式对话框的代码如下:
宿主平台的窗口系统所提供的代码,是轻量级组件
(light weight components)。
Swing的一部分重要特点
• • • • • Swing组件独立于本地窗口系统 Swing组件可以在任何支持AWT的平台系统中运行 Swing完全用Java来执行许多传统的AWT组件 Swing与AWT兼容并且Swing组件能够与AWT组件交 换使用 Swing提供的GUI控件的数量和质量是其他任何GUI 工具包都不可比拟的 Swing拥有一套丰富的、友好的界面元素 在不同的平台上,Swing提供了一致的用户体验 对于Sun公司的“一次编写,到处运行”的理念, Swing将它变成了现实。
Java事件类及其继承关系
Swing中组件的继承关系
Swing组件和容器
• JComponent是一个抽象类,用于定义所有子类组 件的一般方法,其类层次结构如下所示。 ng.Object | +ponent | +--java.awt.Container | +--javax.swing.JComponent • 并不是所有的Swing组件都继承于JComponent类, JComponent类继承于Container类,所以,凡是此 类的组件都可作为容器使用。
物联网讲义 单元13 常用Swing组件的使用
单元13 常用Swing 组件的使用单元目标◆ 了解工具包 AWT 、工具包 SWING 的使用方法◆ 掌握JLabel 、JTextField 、JButton 类的使用方法◆ 掌握常见Swing 组件的特点 学习任务任务描述用户在制定的区域输入加油钱数,汽车跑的公里数,和汽油的价格,单击“计算”按钮,计算显示百公里油耗。
计算公式为:百公里油耗(升) = 加油钱数/汽油的价格/汽车跑的公里数*100。
运行结果知识准备Java 对GUI 的支持包括基本控件、界面容器、事件机制、布局设计、图形和图像等,并提供了大量的类来实现界面设计。
可以实现图形界面的主要有AWT 工具集和Swing 工具集。
13.1抽象窗口工具包(AWT )AWT 是Abstract Window Toolkit 的缩写,称为抽象窗口工具集,AWT 由Java 中的java.awt 包提供,是Java 基础类的一部分。
AWT 提供了构建用户界面的组件,例如菜单、按钮、文本框、对话框、复选框等,可以根据图形界面组件的输入实现事件处理。
此外,AWT 允许绘制图形、处理图像、控制用户界面的布局、字体显示以及提供利用本地剪贴板实现数据传送类等具有辅助性质的类,AWT 中类与类之间的关系如图4-1所示,由Component 类的子类或间接子类创建的对象称为一个组件(又称控件)。
Java 把由Container 的子类或间接子类创建的对象称为一个容器,可以把组建添加到容器中。
油耗计算程序设计油耗计算程序设计图4-1 AWT类体系结构由于AWT属于重量级组件,消耗资源比较多、不同操作系统中外观也会有所不同,而且其功能受限于本地组件。
为了克服这些缺点,Java在AWT基础上,又提供了Swing组件。
13.2 Swing组件简介Swing 组件由javax.swing包提供,是内容丰富、功能强大的轻量级组件。
设计与AWT的设计不同,与显示和事件有关的许多处理工作都由Java编写的UI类来完成。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
JLabel(String text):创建具有指定文本的 标签
JLabel(String text, Icon icon, int horizontalAlignment): 创建具有指定文本、图像和水平对齐方式的标签。
选择框
JList类:创建列表框,用法类似于List类;
JComboBox类:用户可以在下拉列表看到第一个选项和它 旁边的箭头按钮,当用户单击箭头按钮时,将发生 ItemEvent事件; JCheckBox 类:负责创建复选框对象。与Checkbox相比, JCheckBox复选框的名字不仅可以是字符串,还可以是一 个图标; JRadioButton:负责创建单选钮,不过需要将同一组的选 项添加到ButtonGroup对象中。
例7 选择框使用 代码见word文档
文本框
JTextField类:创建单行文本框,功能与TextField类似;
JPasswordField类:创建密码框;为了安全性,用 public char[] getPassword() 来取代getText(); JTextArea类:创建多行文本框,通常放在JScrollPane对象中
中间容器
JPanel类:创建面板,用于容纳其它组件,默认的布局管理 器是FlowLayout。其用法与Panel类似. JScrollPane类:用于创建滚动窗格,我们可以把一个组件 放到该类对象中,然后通过滚动条来观察组件。注意: JTextArea不自带滚动条(这一点与重量组件TextArea不同), 因此,需要把文本区放到一个滚动窗口中。例如: JScorollPane scroll=new JScorollPane(new JTextArea()); 该类用法与ScrollPane类似。 JToolBar类:创建工具栏;setFloatable(boolean b)为 true(默认值)时,可以拖动到容器的四“边”中的何一边 , 也可以拖到单独窗体。 例2 JToolBar 工具栏的使用 。代码见word文档
con.add(jb);//正确!
Swing窗体的布局管理器也是通过内容面板来设置,例如: con.setLayout(new FlowLayout());
Swing窗体可以通过调用方法:
setDefaultCloseOperation(参数);来关闭窗口
参数如下:
DO_NOTHING_ON_CLOSE:不执行任何操作;
JApplet类:是用来建立java小应用程序的。该类位于 Javax.swing包中,它还是java.applet.Applet的子类,也 是一个重量容器; JDialog类:是java.awt.Dialog类的子类。该类或其子类创 建的对象也是重量容器,该对象必须依附一个JFrame对象; JWindow类:是awt.window 的Swing版本,JWindow 是 一个容器,可以显示在用户桌面上的任何位置。它没有标题 栏、窗口管理按钮或者其它与 JFrame 关联的修饰。较少使 用。 注意:AWT组件事件处理的方法,仍适用于Swing组件,以后 不再说明。
Swing不允许把组件直接添加到窗体中,而是要将组件添加 到内容面板,内容面板可以通过getContentPane()方法得到。 例如: JFrame f=new JFrame();
JButton jb=new JButton(“按钮”);
//f.add(jb); 错误! Container con=f.getContentPane();
例8: 生成一个表格,其中一列为其中两列之和,当编辑一个单 元格时,能自动求出总和,并且可根据每一列的列名进行排 序。如图所示:
public class JTableTest extends JFrame implements TableModelListener { JTable table; Object a[][] = { { "张三", "0", "0", "0" }, { "李四", "0", "0", "0" }, { "王五", "0", "0", "0" }, { "陈六", "0", "0", "0" } }; Object name[] = { “姓名”, “英语成绩”, “数学成绩”, “总成绩” }; JTableTest() { super("JTable测试"); //构造一个表格模型。a 数组中的第一个索引是行索引,第二个索引是列索引。 TableModel model = new DefaultTableModel(a, name); // 每当数据模型发生更改时,就将一个侦听器添加到被通知的列表中。 model.addTableModelListener(this); table = new JTable(model); table.setFillsViewportHeight(true);// 设置此表是否始终大到足以填充封闭视口的高度。 table.setAutoCreateRowSorter(true);//设置排序 getContentPane().add(new JScrollPane(table), BorderLayout.CENTER); setSize(300, 200);setVisible(true);validate(); setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); }
JSplitPane类:拆分窗口就是被分成两部分的窗口。拆分窗口 有两种类型:水平拆分和垂直拆分。在拆分的两个窗口中分别 放入不同的组件,中间的拆分线可以移动。 例3 JSplitPane拆分窗口使用 代码见word文档 JTabbedPane类:它允许用户通过单击具有给定标题、图标的 选项卡,在一组组件之间进行切换 例4 JTabbedPane选项面板使用 。代码见word文档 JInternalFrame类:创建内部窗体,常用构造方法: JInternalFrame(String title, boolean resizable, boolean closable, boolean maximizable, boolean iconifiable):创建 具有指定标题、可调整、可关闭、可最大化和可图标化的内部 窗体。 JDesktopPane 类:用于创建多文档界面或虚拟桌面的容器 。 用户可创建 JInternalFrame 对象并将其添加到 JDesktopPane,以管理可能的重叠内部窗体 例5 JDesktopPane 与JInternalFrame使用 。代码见word文档
Swing的组件 JButton(按钮)
JButton类:负责创建按钮对象,与Button相比,JBtton 按钮具有更加丰富的外观; 常用方法: JButton(String text, Icon icon):创建一个带初始文本 和图标的按钮 getIcon():得到按钮图标 setHorizontalTextPosition(int textPosition):设置按 钮上的名字相对图标的水平位置 setVerticalTextPosition(int textPosition):设置按钮 上的名字相对图标的垂直位置 setMnemonic(int mnemonic):设置键盘的快捷键,参 数为KeyEvent.VK_A~KeyEvent.VK_Z 例6 JButton使用。代码见word文档
JLabel(标签)
JLabel 类:负责创建标签对象,与Label相比,JLabel标签具 有更加丰富的外观,例如我们可以创建带图标的标签。 常用方法: JLabel() :创建无图像并且其标题为空字符串标签
JLabel(Icon image):创建具有指定图像的标签
JLabel(Icon image, int horizontalAlignment):创建具有 指定图像和水平对齐方式的标签
JComonent的几个代表子类: JLable 负责创建标签 JMenu 负责创建菜单对象 JMenuItem 负责创建菜单项对象 JPanel 负责创建面板对象 JPasswordField 负责创建口令文本框对象 JPopupMenu 负责创建弹出式菜单 JProgressBar 负责创建进程条 JRadioButton 负责创建单选按钮 JScrollBar 负责创建滚动条 JScrollPane 负责创建滚动窗格 JSlider 负责创建滑动条 JSplitPane 负责创建拆分窗格 JTable 负责创建表格 JTree 负责将分层数据集显示为轮廓的控件
JTable(TableModel dm, TableColumnModel cm) 构造一个 JTable,使用数据模型 dm、列模型 cm 和默认 的选择模型对其进行初始化。 JTable(TableModel dm, TableColumnModel cm, ListSelectionModel sm) 构造一个 JTable,使用数据模型 dm、列模型 cm 和选择 模型 sm 对其进行初始化。
Swing的类库
Swing类库位于javax.swing包中;
AWT组件和对应的Swing组件,从名称上很容易记忆和区别。 例如,AWT的框架类、面板类、按钮类和菜单类,被命名 为Frame、Panel、Button和Menu,而Swing组件的名前 多一个“J”字母;
JComponent 类是java.awt包中容器类Container类的子类, JComponent类的子类都是轻量级组件;
Swing的容器 Swing的顶级容器
JFrame类:是 java.awt包中Frame类的子类,其功能是创 建窗体 , 很 多 用 法 与 Frame 类 似 , 默 认 布 局 管 理 器 是 BorderLayout。下面主要讨论它的不同用法: 一个Swing窗体由多层窗格组成: