Java程序设计教程第8章 Java Swing

合集下载

JAVA课件第8章 SWING界面设计

JAVA课件第8章 SWING界面设计

建立一个含有图标的标签组件,并指定其排列方式。
JLabel(String text) 建立一个含有文字的标签组件,默认排列方式为LEFT。
JLabel(String text,int horizontalAlignment) 建立一个含有文字的标签组件,并指定其排列方式。
JLabel(String text,Icon icon,int horizontalAlignment) 建立一个含有文字和图标的标签组件,并指定其排列方式。
14.
con.add(button2);
15.
con.add(button3);
16.
this.pack();
17.
this.show();
18.
}
19.
public static void main(String [ ] args){
20.
new JButtonApp();
21.
}
22.
}
示例
标签(JLabel)
grabFocus()
请求焦点
setEnable(boolean b)
设置按钮是否可用
setVisible(boolean b)
设置按钮是否可见
1.
import java.awt.*;
2.
import javax.swing.*;
3.
public class JButtonApp extends JFrame{
常用控件
上一节中我们简单介绍了Swing的初步知识,下面我们详 细介绍Swing中的组件。
Swing中的常用组件如下表所示:
组件类 JButton JLabel JTextField JTextArea JRadioButton JCheckbox

编写swing程序的主要步骤

编写swing程序的主要步骤

编写swing程序的主要步骤好的,要使用 Java Swing 编写图形用户界面 (GUI) 应用程序,可以按照以下主要步骤进行操作:1. 设计用户界面:首先,需要使用 Swing 组件设计应用程序的用户界面。

这可以通过使用 Java 的可视化设计工具,如 NetBeans IDE 或 Eclipse IDE 中的 Swing 设计器来完成。

这些工具提供了一个图形化界面,可以通过拖放和调整组件的大小和位置来创建用户界面。

2. 创建组件:在设计用户界面后,可以使用 Java 代码创建这些组件。

这可以通过扩展 Swing 类并创建组件对象来完成。

例如,可以扩展 JFrame 类创建一个窗口,扩展JTextField 类创建一个文本框,扩展 JButton 类创建一个按钮等。

3. 设置组件属性:创建组件后,可以使用 Java 代码设置它们的属性,例如文本、颜色、大小、位置等。

这可以通过调用组件的相应方法来完成。

4. 添加事件监听器:为了使应用程序对用户的交互做出反应,需要为组件添加事件监听器。

例如,如果需要在按钮被点击时执行某个操作,可以为按钮添加一个ActionListener。

5. 组织组件层次结构:在 Swing 中,组件是按照层次结构组织的。

父组件可以包含子组件,子组件可以包含孙子组件等。

需要确保组件的层次结构正确,以便正确显示和处理事件。

6. 创建窗口:最后,需要创建一个包含所有组件的窗口。

这可以通过创建一个 JFrame 对象并将其设置为可见来完成。

7. 运行应用程序:完成应用程序的编写后,可以使用 Java 编译器将其编译为可执行文件,并在 Java 虚拟机上运行。

这是使用 Java Swing 编写应用程序的基本步骤。

需要注意的是,Swing 是一个庞大而复杂的 API,需要花费时间和精力来学习和掌握。

java swing 高级用法

java swing 高级用法

java swing 高级用法Java Swing是一种用于创建图形用户界面(GUI)的Java库。

它提供了丰富的组件和工具,可以用来开发各种交互式应用程序。

在本文中,我们将探讨Java Swing的一些高级用法和功能。

一、自定义组件Java Swing允许我们创建自定义的GUI组件,以完全满足应用程序的需求。

我们可以通过扩展现有的Swing组件,或者创建全新的组件来实现自定义。

通过继承JComponent类,我们可以创建自己的组件,并在其内部实现绘图和事件处理等逻辑。

这样一来,我们可以根据应用程序的需求,自由地定义组件的外观和行为。

二、轻量级绘图Java Swing提供了一种轻量级的绘图机制,可以在组件上绘制图形和图像。

我们可以使用Graphics类的方法来实现图形的绘制,如画线、画矩形、绘制文本等。

通过在JPanel上重写paintComponent方法,我们可以自定义自己的绘图逻辑。

这使得我们能够轻松地在Swing应用程序中添加自定义的图形和动画效果。

三、多线程支持Java Swing应用程序中常常需要处理大量的任务和事件。

为了保持用户界面的流畅和响应性,我们可以使用多线程来处理这些任务。

Swing提供了SwingWorker类,它是一个方便的工具,用于在后台线程执行耗时的任务,而不会阻塞用户界面。

通过使用SwingWorker,我们可以实现并行计算、异步加载数据等复杂的操作。

四、界面布局管理在Java Swing中,我们可以使用不同的布局管理器来指定各个组件的位置和大小。

例如,BorderLayout可以将组件放置在容器的东、南、西、北和中心位置,而GridLayout可以创建规则的网格布局。

使用布局管理器可以使我们的界面更具灵活性和可维护性。

我们可以根据需要动态改变组件的位置和大小,以适应不同的窗口尺寸和屏幕分辨率。

总结:Java Swing提供了丰富的高级用法和功能,可以帮助我们创建具有交互性和视觉吸引力的GUI应用程序。

Java应用程序设计SwingGUI优质资料

Java应用程序设计SwingGUI优质资料
中的静态常量进行指定;
常量 SINGLE_SELECTION SINGLE_INTERVAL_SELECTION MULTIPLE_INTERVAL_SELECTION
常量值
作用
0 只允许单选
1 只允许连续多选
2 可多选,可连续/间隔
8.3.6 JList组件
JList提供的常用方法
setSelectedIndex(int index):选中指定索引的一个选 项;
置文字相对于图像在水平方向上的位置,可从下表 中选择
静态常量 TOP CENTER
常量值 1 0
BOTTOM
3
例子: LabelDemo.java
水平方向位置
文字在图片上方
文字与图片在垂 直文向上重叠显 示 文字显示在图片 下方
8.3.2 JButton组件
通过JButton类来创建按钮组件;
返回Dimensions类型的对象; scrollRectToVisible(Rectangle r); //向左或
向右滚动文本框中的内容;
setColumns(int columns); //设置文本框最多
setFont(Font f); //设置文本框的字体;
JComboxBox idCardsComboBox=
new JComboxBox(idCards);
8.3.5 JComboBox组件
(2)setModel(ComboBoxModel aModel) 方法
String idCards={“身份证”,”士兵证”,”驾驶 证”};
JComboBox icb =new JComboBox(); icb.setModel(new
JRadioButton组件实现一个单选按钮,可 以单独使用,也可以和ButtonGroup类联 合使用;

第8章 Swing程序设计

第8章  Swing程序设计
3
Swing中的容器
2.JPanel:Swing中最常用的面板。 构造方法:


JPanel(); 建立一个新的JPanel,默认的版面 管理是Flow Layout。 JPanel(LayoutManager layout);建立一个新 的JPanel,并自定义版面管理。
4
Swing中的容器
3.JScrollPane:滚动面板,可以用来滚动 窗口。 构造方法:
Java实用教程
第8章 Swing程序设计
1
第8章 Swing程序设计
(一)Swing中的容器
1. JFrame:Swing中最常用、最底层的容 器。 构造方法:
JFrame(); 建立一个新的JFrame,默认值是 不可见的。 JFrame(String title); 建立一个标题名称的 JFrame,默认值是不可见的。 注意:在JFrame中仅包含一个JRootPane子容器。 所以在JFrame中显示的所有非菜单组件都应该添 加到JRootPane所提供的contentPane中。
通过动作监听(ActionListener)监听动作事件 (ActionEvent),并执行相应处理。
8
对话框(JDialog和 JOptionPane)
对话框用于系统和用户间的沟通。 如对用户的操作提出警告等。


JDialog是一个对话窗口。可以在程序执行过程中 为用户提供一些信息。 JOptionPane是JDialog的易用版。
1.动作事件(ActionEvent)处理: 如:对按钮被按下的动作处理。 例子:创建一个名为“显示”的按钮,当按下按钮时,面板 显示“你好,Swing”,并且按钮名改为“不显示”,再点 击时,按钮名改为“显示”,面板不显示内容。 2.WindowEvent: 用于处理窗口的所有操作,如处理窗口的 关闭、退出 例子:一个关闭窗口时退出程序的例子

Java程序设计教程 第八章

Java程序设计教程 第八章

数据成员
Protected String buffer Protected int count Protected int pos
说明
用来储存将要读取的字符 缓冲内的有效数目 指向将要读取字符的指针
8.2.3 管道流
“管道”的概念:即它把一个程序的输出与另一 个程序的输入连接起来,传送的同样是字符流。 表8-4是PipedInputStream的数据成员:
图8-1 读取数据操作
图8-2 写入数据操作
8.1 输入输出概述
使用一个流对象,就可以方便地进行读取 或写入操作。在前面的章节里,就已经接 触过System.out,它就是一个PrintStream 实例。已知它有方法println(String),一条语 句System.out.println("Hello World!")就会在 控制台窗口显示Hello World!。另外, System.in是一个InputStream实例。 所有的输入输出类都直接或间接地从两个基 类派生而来,这两个基类分别是 InputStream和OutputStream两个抽象类。
8.2.6 文件流FileStream
3. 文件输出流:FileOutputStream类
一个文件输出流的工作是把内容输出到一个File或者一个 FileDescriptor。FileOutputStream类的构造函数如表8-10
函数名 FileOutputStream(File file) 说明 将内容写入file所代表的文件对象
8.2.1 字节流
ByteArrayOutputStream类的构造方法有两种: 一种是无参数构造方法,另一种原型是 ByteArrayOutputStream(int size),size指定了数 组大小。该类拥有的数据成员见表8-2。 数据成员

Java第8章

Java第8章
Nhomakorabea21
2 JComboBox类中的方法
public void addItem(Object anObject) :在末尾位置 添加新的可选项。 public void insertItemAt(Object anObject,int index) :在index指定的位置添加新的可选项anObject。 public void removeAllItems( ) :删除所有可选项。 public void removeItem(Object o) : 删除由o指定的 可选项。 public void removeItemAt(int anIndex) : 删除指定 位置(由anIndex指定)的可选项。
5
2 构造JButton示例
构造显示文本为“Sample”的按钮 : JButton b = new JButton(“Sample” ); 构造显示文本为“Sample”、带有钻石形状小图标的 按钮:
JButton b = new JButton("Sample",new ImageIcon("icon.gif"));
程序8-2
8
8.1.2 切换按钮
JToggleButton是具有两种状态的按钮,即选中状 态和未选中状态 JToggleButton的构造方法 JToggleButton( ): 创建一个默认的切换按钮 JToggleButton(Icon icon): 创建一个有图标的 切换按钮 JToggleButton(Icon icon, boolean selected) 创 建一个有图标和指定初始状态的切换按钮
11
程序8-3
程序说明
JToggleButton、JCheckBox和JRadioButton等具有两 种状态的按钮可以注册ItemEvent事件监听程序。

JAVA语言程序设计第八章

JAVA语言程序设计第八章

2.实现监听器中的接口,如: 实现监听器中的接口, 实现监听器中的接口
public void actionPerformed(ActionEvent e) {
...//响应某个动作的代码... ...//响应某个动作的代码... 响应某个动作的代码
}
3.在一个或多个组件上将监听器类的实例注册为监听器, 3.在一个或多个组件上将监听器类的实例注册为监听器, 在一个或多个组件上将监听器类的实例注册为监听器 如:someComponent.addActionListener(instanceOfMyClass);
8
Flow Layout Managerexample GUI
例: import java.awt.* ; public class ExGui { Press Me Don’t Press Me private Frame f ; private Button b1 ; private Button b2 ; public static void main( String args[ ] ){ ExGui guiwindow = new ExGui( ); guiWindow.go( ) ; } public void go( ){ f = new Frame(“GUI example”) ; f.setLayout( new Flow Layout( )) ; b1 = new Button(“Press Me”); b2 = new Button(“Don’t Press Me “); f.add( b1) ; f.add(b2); f.pack( ); f.setVisible(true) ; } 9 }
...
Button Dialog Container window Frame ... ScrollPane

Java程序设计:第八章 Swing图形界面程序设计

Java程序设计:第八章 Swing图形界面程序设计

原型 public FlowLayout(int align )
描述
FlowLayerout布局时,组件在容器以从左到右,从 上到下的方式排列。 align用于指定行对齐方式, FlowLayout.LEFT表示左 对齐,相应的有右对齐和居中对齐。
java.awt.Container的成员JLabel(2)
JFrame的成员方法
原型
public JFrame( ) public JFrame(String title) public void setDefaultCloseOperation( int operation) public void setSize(int width, int height) public void setVisible(boolean b) public Container getContentPane()
描述 构造一个无标题不可见的框架 构造一个标题为title的框架 设置当关闭框架时的操作,例如operation为 JFrame.EXIT_ON_CLOSE时表示退出程序
设置框架的大小
设置框架是否可见 返回当前框架的内容窗格
7
组件和容器 -JFrame和JLabel(3)
FlowLayout布局的成员方法:
4
组件和容器(3)
一般容器包括: 面板JPanel,滚动窗格JScrollPane,选项卡 窗格JTabbedPane和工具栏JToolBar。
专用容器包括:内部框架(JInternalFrame),分层窗格 (JLayedPane)、根窗格(JRootPane)、玻璃窗格(GlassPane )、内 容窗格(ContentPane)。
描述 构造一个父窗口为owner,标题为title,模式为 modal的对话框。Modal为true表示有模式,为false 表示无模式 设置对话框的大小

[java入门学习]第_8_章_Swing组件

[java入门学习]第_8_章_Swing组件

第8章Swing组件在第7章中,介绍了用AWT创建图形用户界面的基本原理。

在java.awt包中,提供了各种具体的组件,如Frame、Panel、Button、Label等。

AWT组件的优点是简单、稳定,同时兼容于任何JDK版本,缺点是依赖于本地操作系统的GUI,缺乏平台的独立性。

为了实现跨平台,使得用java创建的图形界面在不同操作系统中保持相同的外观,从JKD1.2版本开始引入了Swing组件,这些组件位于javax.swing包中, Swing GUI组件定义了相对于java.awt 包更多、更强的功能,可以使用户更加灵活方便的进行GUI的设计。

Swing组件时用纯Java语言编写的,不依赖于本地操作系统的GUI,Swing组件可以跨平台运行。

独立于本地平台的Swing组件被称为轻量级组件,而依赖于本地平台的AWT组件被称为重量级组件。

多数Swing组件的父类为javax.swing.JComponent,JComponent 的直接父类为java.awt.Container,与AWT中的Window与Panel处于同一个继承类层次。

多数Swing组件类都是以大写字母“J”开头,图8-1显示了Swing组件的类层次结构。

从图中可以看出,除JFrame外,其余的Swing组件都继承自JComponent类。

图8-1 Swing组件的类层次结构8.1 容器组件8.1.1 JFrameJFrame是用来替代AWT包中Frame的,可以实现与Frame相同的功能,包括作为容器容纳其他组件,显示组件等。

[例8-1]import javax.swing.*;import java.awt.*;class JFrameTest extends JFrame{private JButton button1 = new JButton("button1");private JButton button2 = new JButton("button2");public JFrameTest(String title){super(title);//设置标题this.setBounds(50,50,200,150);//获得与JFrame关联的contentPane,contentPane默认的布局管理器是BorderLayoutContainer contentPane = this.getContentPane();contentPane.setLayout(new FlowLayout(5));contentPane.add(button1);contentPane.add(button2);this.setVisible(true);//设置JFrame对关闭按钮的处理方式this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);}}public class Test8_1 {public static void main(String[] args) {new JFrameTest("JFrame测试");}}程序运行界面如下:图8-2 例8-1运行界面利用JFrame实现了与Frame相同的功能,但JFrame与Frame在使用上还是有很大区别的。

深入浅出java swing程序设计-概述说明以及解释

深入浅出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程序设计。

文章分为引言、正文和结论三个部分,每个部分有相应的小节。

swing教程

swing教程

swing教程Swing是Java的一个图形界面(GUI)工具包,它提供了一组用于创建富客户端应用程序的类和方法。

本教程将带您逐步学习Swing的基本概念和用法。

1. 引入Swing库在开始编写Swing应用程序之前,首先需要在代码中引入Swing库,可以通过添加以下代码实现:```import javax.swing.*;```2. 创建Swing窗口创建一个Swing窗口是使用Swing的第一步。

可以通过以下代码创建一个基本的Swing窗口:```JFrame frame = new JFrame("Swing窗口");frame.setSize(400, 300);frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); frame.setVisible(true);```3. 添加组件在Swing窗口中添加各种组件(如按钮、标签、文本框等)是创建功能完善的界面的关键。

可以使用不同的Swing类来创建和定位这些组件,例如JButton、JLabel和JTextField。

以下是添加一个按钮和一个标签的示例:```JButton button = new JButton("点击我");JLabel label = new JLabel("Hello, Swing!");frame.add(button);frame.add(label);```4. 布局管理器布局管理器是用于控制Swing组件在窗口中的位置和大小的工具。

Swing提供了多种布局管理器,例如FlowLayout、BorderLayout和GridLayout。

使用布局管理器可以轻松地创建自适应和响应式的界面。

以下是使用FlowLayout布局管理器的示例:```frame.setLayout(new FlowLayout());```5. 事件处理Swing允许通过添加事件监听器来处理用户的交互。

Java语言程序设计基础教程课件(第8章)

Java语言程序设计基础教程课件(第8章)

分类 抽象基类 访问文件
字节输入流
字节输出流
字符输入流
字符输出流
InputStream
OutputStream Reader FileReader
CharArraБайду номын сангаасReader
Writer FileWriter
FileInputStream FileOutputStr eam
访问数组
访问管道
ByteArrayInput Stream
2.字符流( Reader/Writer )
B u ffered R ead er C h arA rray R ead er I n p u tS tr e a m R e a d e r R ead er F ilte r R e a d e r P ip e d R e a d e r S tr in g R e a d e r F ile R e a d e r P u sh b a c k R e a d e r L in e N u m b e r R e a d e r
ByteArrayOut putStream
CharArrayW riter
PipedWriter
PipedInputStrea PipedOutputS PipedReader m tream
访问字符 串
缓冲流
StringReader
BufferedInputSt BufferedOutp ream utStream BufferedReader
◇ 文件属性相关方法 boolean exists( ); boolean canWrite( ); boolean canRead( ); boolean isFile( ); boolean isDirectory( ); long lastModified( ); long length( );

JavaSwing图形界面开发(第8章).ppt

JavaSwing图形界面开发(第8章).ppt
7
8.1.3 使用ListModel方式创建列表框 ListModel是一个接口,其主要功能是定义一些方法, 让JList组件取得每个项目的值,并可限定项目的显示时间
与方式。
表8.1 ListModel接口定义的方法
8
AbstractListModel抽象类:
只有实现ListModel接口中的所有方法,才能利用构造器建立JList。
第8章
如何使用列表框和下拉列表框组件
列表框---将“所有选项”都列在框中,提供用户选择。
下拉列表框---用户未操作列表框时,只显示出一个数据。但当单击
下拉箭头时,数据将以下拉方式显示。
说明:列表框、下拉列表框均属于“选择性组件”。虽然用途相同,
但各有其使用环境。 一般用法:当数据较少时,使用列表框; 当数据较多时,尽量使用下拉列表框。
表8.2 下拉列表框的构造器
说明:与JList一样,可通过“数组”和“Vector”创建下拉列表框对象。
21
8.2.1 使用数组和Vector创建下拉列表框
22
运行结果:
说明:● 使用Vector和数组差不多。 ● JComboBox控件有addItem方法,此方法在 JList中不具备。
映山红
JList类中“addListSelectionListener()”方法,可 检测用户是否对JList的选取有任何改变。 ListSelectionListener接口中只定义一个方法,即: valueChanged(ListSelectionEvent e);
只有实现这个方法,才能在用户改变选取值时,取得
9
AbstractListModel程序示例:
通过创建一个“实现了抽象类AbstractListModel”的“DataModel类”来创 建一个列表框。

java中swing的用法

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个区域:北、南、东、西、中。

java 核心课件2-第8章

java 核心课件2-第8章

8.7.2 JInternalFrame类
很多应用会将信息在多个窗口中显示,并且这些窗口都包含 在一个大的框体中,如果将应用框体最小化,那么它当中的 所有窗口会在同一时间全部隐藏起来,在Windows环境中, 这种用户界面有时称作多文档界面; Java中通过JInternalFrame类来实现这种窗口,它的使用跟 JFrame几乎一样; 不同的是:它不能单独出现,必须依法在上层组件上,触发 事件是InternalFrameEvent; 使用时,一般会将Internal Frame加入DesktopPane方便管 理; DesktkopPane是一种特殊的LayeredPane,用来建立虚拟 桌面面板,它可以显示并管理众多的Internal Frame直接的 层次关系。
8.1.4 Swing的派生关系图
Object
Component Container JText JComboBox JLabel JList JMenuBar Window Frame JFrame Dialog JScrollBar JDialog AbstractButton JToggleButton JCheckBox JRadioButton JMenuItem JMenu JButton JComponent JOptionPane JPanel
第8章 GUI编程之Swing
了解Swing组件的体系结构; 熟练使用Swing的各种组件; 能够综合运用各种组件做出出色的界面。
8.1 简介
一个简单的Swing程序: import java.awt.*; import java.awt.event.*; import javax.swing.*; public class SimpleSwingDemo extends JFrame implements ActionListener { private JLabel jLabel; private JButton jButton; private String labelperfix = "Number of button clicks:"; private int numClicks = 0; public SimpleSwingDemo() { super("hello"); setSize(200, 100); setLocation(600, 200); jLabel = new JLabel(labelperfix + "0"); jButton = new JButton("I am a Swing button!"); jButton.setMnemonic('i'); //创建一个快捷键:用户按下[Alt+i]组合键等价于单击该Button jButton.setToolTipText("Press me"); //设置鼠标移动到该Button时的提示信息 jButton.addActionListener(this); setLayout(new GridLayout(2, 1)); add(jLabel); add(jButton); setVisible(true); setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);//点击窗口关闭按钮时退出程序 } public void actionPerformed(ActionEvent e) { numClicks++; jLabel.setText(labelperfix + numClicks); } public static void main(String[] args) { new SimpleSwingDemo(); } }
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

8.4.1 图形绘制
8.3.1 Swing与AWT之间的关系
• (2)AWT中提供的控件数量很有限,远没有Swing 丰富,例如Swing中提供的JTable、JTree等高级 控件在AWT中就没有。另外,AWT中提供的都是重 量级控件,如果编写的程序希望运行在不同的平 台上,必须在每一个平台上单独测试,无法真正 实现“一次编写,随处运行”。
8.3.1 Swing与AWT之间的关系
• (3)Swing的出现并不是为了替换AWT,而只是提 供功能更丰富的开发选择,Swing中使用的事件处 理机制就是AWT1.1中提供的。因此实际开发中会 同时使用Swing与AWT,但一般控件只采用Swing的, 而很多辅助类时常需要使用AWT当中的,特别是在 进行事件处理开发时。 • 通过上面的介绍读者应该体会到,Swing与AWT是 合作的关系,并不是用Swing取代AWT。
8.1 Java Swing概述
• Swing是Sun公司推出的第二代图形用户接口工具包,通过Swing可 以开发出功能强大、界面优美的客户应用程序。Swing中不但提供 了很多功能完善的控件,而且其还具有良好的扩展能力,用Swing 来进行交互界面的开发是一件另开发人员非常愉快的工作。 • Swing从诞生到现在大致经历了如下几个阶段。 • (1)Swing项目是从1996年底开始的,在项目开始的同时所有的 参与者共同选定了这个名称,目的就是开发一个不依赖于本地系 统的图形用户接口工具包。 • (2)1997年后半年Swing进入测试阶段,并在1998年春随同JDK 1.1首次发行,对于JDK 1.1之前的版本,是不能使用Swing库的。 • (3)Swing从首次发行开始,就不断快速的成长,自JDK 1.2之后, 便被完全集成到了Java的标准类库中,成为Java基础类(JFC)库 大家族中的一个重要组成部分。
第8章 Java Swing
• Java Swing是Java语言中用来实现GUI(Graphic User Interface,图形用户界面)的类库。GUI是 为了让程序与用户之间的交互,更加友好的一种 机制。为用户提供直观的、可视化的交互界面。 Swing组件是完全用Java语言编写、操作和显示的。 Swing组件是Java语言中的基础类库,可以2.画笔的相关知识 • 上一小节介绍了画布的相关知识,本小节将介绍 画笔的相关知识。Java在绘制图形时,是由 Graphics类对象来充当画笔的,该类位于 java.awt包中。Graphics类中提供了很多绘制简 单二维图形的方法,开发人员使用这些方法就可 以在画布上绘制指定的图形。 • 在了解各个绘图方法之前,首先应该理解下面两 个方面的内容。 • (1)Graphics对象的获取 • (2)坐标系统
8.4.1 图形绘制
• 本节将首先从简单图形的绘制入手,介绍在Java 中是如何绘制各种基本图形的。 • 1.画布的相关知识 • 若要绘制图形,必须具备两个要素,一个是画布, 另一个则是画笔。缺少了任何一个元素,图形的 绘制都将无法进行,因此本小节将介绍Java中画 布的相关知识。 • Swing中任何JComponent类的子类都可以充当画布 的角色,前面已经介绍过JComponent类是所有 Swing控件的超类,因此所有的Swing控件都可以 作为画布。
8.3.2 Swing与AWT的控件的混用建议
• 由于AWT中提供的是重量级控件,是依赖本地系统 的对等体实现的,而Swing控件属于轻量级控件, 是由纯Java编写的,使用基本图形元素直接在屏 幕上绘制,因此在搭建界面时,如果将二者同时 使用,就有可能会出现先后遮挡关系不正常的现 象。
8.4 界面图形的绘制以及文字显示与颜色控制 • 随着时代的发展,现代的GUI应用程序中或多或少 的会设置一些图形或动画。这样既能美化界面, 使应用程序的内容丰富多采,也可以增加应用程 序的交互性。使用带有丰富图象与动画的应用程 序,用户会有更好的体验,不会感到乏味无趣。 本小节将简单介绍在Java中如何绘制图形、显示 文字及控制颜色显示。
8.3.1 Swing与AWT之间的关系
• Swing是继AWT之后Sun推出的又一款GUI工具包, 下面几点介绍了为什么要推出Swing工具包,以及 Swing是否是AWT的替代品。 • (1)AWT是随早期Java一起发布的GUI工具包,是 所有Java版本中都包含的基本GUI工具包,其中不 仅提供了基本的控件,并且还提供了丰富的事件 处理接口。Swing则是建立在AWT1.1中引入的轻量 级工具之上的,也就是说AWT是Swing大厦的基石。
8.3 Swing和AWT的对比
• Swing诞生之前,Java中用来进行图形用户界面开 发的工具包为AWT,本节将介绍Swing与AWT之间的 关系及其在开发中需要注意的一些问题。 • AWT是“Abstract Window Toolkit”的缩写,即 “抽象窗体工具包”,其中提供的都是重量级对 等控件。
8.2 一个简单的Swing程序
• 通过上一节的介绍,读者对Swing的概念有了初步的了解, 本节中将通过一个非常简单的Swing程序给读者举例。该例 程序的功能为在对话框中显示一段文字信息,具体代码如 下。 • (1)第3行通过import语句对Swing包进行了导入,在进行 Swing开发时读者要注意导入相关包,否则会编译不通过。 • (2)本例程序是通过继承JFrame类来实现窗体开发的,这 里读者不必深究,后面会详细介绍。 • (3)第10~27行的窗体类构造器中调用相关方法对控件的 内容、大小位置,窗体的标题、大小位置等进行了设置, 在这里读者也不必深究,后面将会详细介绍。 • (4)主方法中通过调用窗体类的构造器创建了窗体对象, 如果程序编写没有问题,运行时窗体将按照代码设定的情 况出现在桌面上。
相关文档
最新文档