图形界面Swing
- 格式:doc
- 大小:604.50 KB
- 文档页数:12
Swing(曹雯君)Swing是一个为Java设计的图形用户界面(GUI)工具包。
Swing是Java API的一部分。
Swing包括了GUI的元器件,如:文本框,按钮,分隔窗格和表。
Swing用于提供一组“轻量级”(全部是 Java 语言)组件,它们用纯Java写成,所以同样可以跨平台使用。
轻量级元件的缺点则是执行速度较慢,优点就是可以在所有平台上采用统一的行为。
1. 30分钟快速上手1.1 Swing和AWT的关系与区别•关系Swing是一个用于开发JAVA应用程序用户界面的开发工具包。
以抽象窗口包(AWT)为基础使跨平台应用程序可以使用任何可插拔的外观风格。
Swing API的大部分是AWT的补充扩展而不是直接的替代。
Swing用来绘制轻量级组件的核心渲染功能是由Java 2D提供的,这是AWT的一部分。
然而,轻量级和重量级组件在同一个应用中使用会导致Z-order不兼容。
•区别Swing为基于窗体的GUI应用开发设计,为Java跨平台特性提供了卓越的支持,它完全没有本地代码,不受操作系统的影响,做到了真正的跨平台应用,甚至能够提供本地窗口系统不支持的其他特性。
因此比AWT具有更强的实用性,同时比AWT程序拥有更加精致的外观感受。
AWT只提供基本的组件,使很多设计变得复杂,且无法在不同的平台下保持显示风格的一致性。
例如:如果建立一个按钮(Button)对象,就会有一个按钮对象会请求底层操作系统创建一个真正的按钮。
即在WindowsNT上执行那么创建的就是WindowsNT按钮;在Linux 上执行,那么创建的就是Linux按钮。
因此AWT组件外观会受到底层操作系统的影响。
1.2 Swing操作步骤1.2.1 导入Swing包import javax.swing.*;大部分的Swing程序用到AWT的基础底层结构和事件模型,因此需要导入两个包:import java.awt.*;import java.awt.event.*;如果图形界面中包括了事件处理,那么还需要导入事件处理包:import.javax.swing.event.*;1.2.2 选择界面风格Swing允许选择程序的图形界面风格常用的有Java风格,Windows风格等。
java swchi用法引言是文章开篇部分,用于介绍文章的背景、目的和结构。
在本文中,我们将对Java Swing的使用进行详细介绍和讨论。
1.1 概述:Java Swing是Java语言提供的一套图形用户界面(Graphical User Interface, GUI)工具包,它为开发者提供了创建丰富、交互性强的图形界面应用程序的能力。
通过使用Java Swing,开发者可以轻松地设计和实现窗口、标签、按钮等各种UI组件,并与用户进行交互。
1.2 文章结构:本文将分为五个主要部分来介绍Java Swing的使用方法和常用组件。
首先,在“2. Java Swing简介”部分中,我们将对Java Swing进行基本介绍,包括其定义、特点以及应用领域。
然后,在“3. 开发Java Swing应用程序的基本步骤”部分,我们将详细说明如何安装和配置Java开发环境,并给出开发Swing应用程序的基本步骤。
接下来,在“4. Java Swing常用组件及用法示例”部分中,我们将逐一介绍常见的Swing组件,如JFrame窗口类、JLabel标签类以及JButton按钮类,并给出相应的使用方法示例。
最后,在“5. 结论与展望”部分中,我们将对Java Swing的优势与局限性进行总结,并展望Java GUI开发的未来趋势。
1.3 目的:本文旨在帮助读者了解和掌握Java Swing的基本使用方法和常用组件,以便能够快速开发出功能强大、用户友好的图形界面应用程序。
通过学习本文,读者将能够了解Swing的特点和应用领域,并掌握开发Swing应用程序的基本步骤。
同时,本文还将通过具体示例介绍常见的Swing组件的用法,以帮助读者更好地理解和运用这些组件。
以上是“1. 引言”部分内容的详细描述。
接下来,我们将继续撰写文章其他部分的内容。
2. Java Swing 简介2.1 什么是Java SwingJava Swing是一组用于创建图形用户界面(GUI)的Java库。
Java图形用户界面:Swing和JavaFX的简单介绍在计算机科学领域中,图形用户界面(GUI)是指通过图形、图像和视觉元素来与计算机程序进行交互的界面。
Java作为一种广泛使用的编程语言,提供了多种选择来构建图形用户界面。
其中,Swing和JavaFX是最常用的两种选择。
本文将对这两种Java GUI工具进行简单介绍,并探讨它们的特点和用途。
一、SwingSwing是Java提供的一套GUI工具包,旨在提供一种跨平台的解决方案。
它是在AWT(抽象窗口工具包)的基础上开发的,为开发者提供了一系列可重用的GUI组件,如按钮、文本框、标签等。
Swing的特点之一是其轻量级性能,它不依赖于操作系统的原生GUI组件,而是完全由Java代码实现。
这使得Swing应用程序可以在不同操作系统上以相同的方式运行,而无需进行任何修改。
Swing提供了丰富的组件库,使得开发者可以轻松构建复杂的用户界面。
它还支持可定制的外观和感觉,开发者可以根据自己的需求选择不同的外观主题。
此外,Swing还提供了一些高级组件,如表格、树形结构和滚动面板,使得开发者可以创建更复杂和功能强大的界面。
然而,Swing也有一些缺点。
由于其完全由Java代码实现的特性,Swing应用程序可能在性能方面存在一些问题。
尤其是在处理大量数据或复杂图形时,Swing的性能可能会受到影响。
此外,Swing的外观和感觉可能与操作系统的原生界面存在一些差异,这可能会对用户体验造成一定的影响。
二、JavaFXJavaFX是Java平台上的另一种GUI工具,它提供了更现代化和富有表现力的用户界面。
与Swing不同,JavaFX使用了一种基于场景图的方式来构建界面。
它通过使用FXML(一种基于XML的用户界面描述语言)和CSS(层叠样式表)来分离界面的结构和样式,使得界面的定制变得更加灵活和简单。
JavaFX提供了许多内置的UI组件,如按钮、文本框、标签等,这些组件具有更丰富的视觉效果和交互特性。
编写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,需要花费时间和精力来学习和掌握。
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程序设计-概述说明以及解释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程序设计。
文章分为引言、正文和结论三个部分,每个部分有相应的小节。
第9章图形用户界面(二)9.1 Swing包Swing是建立在AWT基础之上的,它包括图形、颜色、字体、工具包和布局管理器等。
Swing提供了比AWT更全面的组件集合。
java.awt包与javax.swing包的区别:(1)awt包画出的窗口因为在不同的平台上显示不同,存在缺点,所以产生了javax.swing包。
(2)新版的swing包可能与旧版不兼容;(3)swing包是建立在awt包的基础上的,所以不能完全舍弃awt包;(4)awt包的运行速度比swing快。
(5)将awt组件改写为swing组件时,大多数时候只需在原有的awt组件的每个类名前面加上“J”即可。
Swing组组建的分类:顶层容器:JFrame,JDialog,JApplet和Jwindow普通容器(中间层容器):JPanel,JScrollPane,JsplitPan和JTabbedPane特殊容器:JInternalFrame,JLayeredPane,JRootPane,JToolBar基本组件:如JButton,JComboBox,JList,JMune,JSlider,JTextField等Swing组件使用的基本规则:1、Swing组件应放入一个顶层Swing容器中2、避免使用非Swing的重量级组件,因为当轻、重量级组件混合时,重量级组件总是画在轻量级组件的上面。
9.2 顶级容器1、注意JFrame与Frame类对于控件的添加方法。
JFrame上不能直接使用add方法添加控件,其添加对象应该想起内容面板ContentPane上添加对象,其布局也内容面板的setLayout()方法设定。
2、operation设置用户在此窗体上发起 "close" 时默认执行的操作。
必须指定以下选项之一:∙DO_NOTHING_ON_CLOSE(在 WindowConstants 中定义):不执行任何操作;要求程序在已注册的 WindowListener 对象的windowClosing 方法中处理该操作。
∙HIDE_ON_CLOSE(在 WindowConstants 中定义):调用任意已注册的WindowListener 对象后自动隐藏该窗体。
∙DISPOSE_ON_CLOSE(在 WindowConstants 中定义):调用任意已注册 WindowListener 的对象后自动隐藏并释放该窗体。
∙EXIT_ON_CLOSE(在 JFrame 中定义):使用 System exit 方法退出应用程序。
仅在应用程序中使用。
默认情况下,该值被设置为 HIDE_ON_CLOSE。
2、JDialog类JDialog组件是一个顶层容器组件,不过每一个JDialog对象都必须依附一个JFrame对象而存在。
缺省状态下,用JDialog类创建的对话框都是无模式的,如果要创建有模式对话框,可以在构造函数里增加一个boolean项。
如要将任务要求的对话框改为有模式,以上创建语句修改为:1)JDialog(JFrame f,String s) :构造方法2)getContentPane() : 同JFrame例 Dwindow.java9.3swing包中基本组件2.标签JLabel3.复选按钮JCheckBox 例TestCheck.java4.单选按钮JRadioButton,ButtonGroup例 TestRadio.java5.组合框 JComboBox例TestCombo.java6.文本框JTextField、文本域JTextArea、密码框JPasswordField7.列表JList例 TestListWeapon.java8.菜单栏 JMenuBar、菜单JMenu、菜单项JMenuItemJava程序中的菜单生成需要创建3种对象(菜单项对象、菜单对象和菜单栏对象),然后将菜单项对象添加到菜单对象中,又把菜单对象添加到菜单栏对象中,最后将菜单栏对象添加到所在的顶层容器对象中。
例TestMenu.java9.弹出式菜单JPopupMenuJPopupMenu可包含多个JMenu或JMenuItem对象。
弹出式菜单的创建过程和菜单系统的创建步骤基本相同:⑴首先新建一个JPopupMenu对象。
⑵然后建立各个菜单选项。
⑶使用add()方法将菜单选项加入到JPopupMenu对象中。
⑷将弹出式菜单与相应组件关联。
关联的方法是:为关联的组件注册鼠标监听器对象。
⑸在实现鼠标事件的方法中,检测弹出式菜单的触发条件是否满足(isPopupTrigger() 返回此鼠标事件是否为该平台的弹出菜单触发事件。
)。
一旦触发条件满足,便可使用JPopupMenu 的show()活动显示弹出式菜单。
激活弹出式菜单最常用的方式为:右键单击与JPopupMenu对象关联的组件。
例:Exa_9_15.java10.JSlider 和JProgressBar滑杆JSlider为用户提供了用以方便直观地输入数值的工具。
滑杆组件一般有一个连续的数值区间和一个可拖动的滑块,用户可以通过拖动滑块在一个区间范围内进行选择。
当滑杆被拖动时,滑块的值将发生变化,触发ChangeEvent事件。
滑杆组件的事件监听器要实现ChangeListener接口,并实现接口中的stateChanged()方法:MyListener myListener = new MyListener();mySlider.addChangeListener(myListener);private class MyListener implements ChangeListener{public void stateChanged(ChangeEvent event){......//事件处理的代码}}进度条JProgressBar是一类以图形化方式显示工作完成进度比率的组件。
通常用某种颜色动态填充一个矩形条块,以矩形条块被填充的比例来反映任务进行的进度大小。
JProgressBar类的重要方法与JSlider类近似,方法的拼写与功能也几乎完全相同,下面只列出JProgressBar类独有的几个重要方法:1.double getPercentComplete():返回进度条当前完成任务的百分比。
2.String getString():返回代表进度条当前完成任务的比例的字符串。
3.void setString(String s):为进度条设置代表完成任务比例的字符串。
4.void setStringPainted(boolean b):设置一个逻辑值来控制是否为进度条配备一个完成任务的百分比字符串。
5.void setBorderPainted(boolean) :设置一个逻辑值来控制进度条是否带有边框。
6.BoundedRangeModel getModel():返回进度条的数据模式7.void setModel(BoundedRangeModel newModel):设置控制进度条的数据模式。
其中进度条的数据模式包含着进度条四种重要属性的数据,这些属性分别是minimum、maximum、extent及value。
例:Exa_9_13.java11.工具栏JToolBar类工具栏是一种集成一组动作、命令或功能的组件,一般由带图标的按钮组成。
工具栏在图形界面的设计中常被用作菜单栏的补充,显示的是菜单中经常用到的命令对应的组件。
要使JToolBar支持拖曳功能,容纳工具栏的容器最好使用BorderLayout布局管理器。
Java提供JToolBar类创建工具栏对象。
工具栏对象是一个容器对象,创建后可以使用add()方法添加组件。
Orientation参数通常为HORIZONTAL(水平方向)或VERTRICAL(垂直方向)例:Exa_9_16.java【语法】setToolTipText()方法的调用形式:setToolTipText(String s)其中:s表示组件上的提示文字一般的Swing组建都有setToolTipText()方法如果当工具栏中都是显示为图标形式的组件时,为使用户明白每个组件功能,可以对组件调用setToolTipText()方法设置提示文字。
这样,当鼠标指针停在组件上时,会显示其上的文字提示。
10. 对话框设计JOptionPane选项窗格对话框JOptionPane类能够为用户显示提示信息或接受用户的信息输入。
JOptionPane提供的对话框都是模态对话框。
JOptionPane对话框分为四种类型,分别与四种静态方法相对应:①OptionDialog对话框,对应于showOptionDialog()方法。
功能:打开进行功能选择的对话框。
②MesageDialog对话框,对应于showMesageDialog()方法。
功能:打开向用户显示消息的对话框。
③InputDialog对话框,对应于showInputDialog()方法。
功能:打开提示并接受用户输入的对话框。
④ConfirmDialog对话框,对应于showConfirmDialog()方法。
功能:打开一个要求确认的问题并等待用户回答响应的对话框10.选项卡组件JTabbedPane类选项卡是一种容器组件,允许用户通过单击具有标题或图标的卡片,访问不同的组件集。
当图形界面设计面临在一定的屏幕空间中显示多种信息时,选项卡组件将是最为合适的选择。
【语法】JTabbedPane类提供了3种构造方法用于创建不同初始状态的选项卡对象,方法的声明如下:public JTabbedPane():创建一个具有默认JTabbedPane.TOP选项卡布局的空JTabbedPane对象;public JTabbedPane(int tabPlacement):创建一个具有指定选项卡布局的空JTabbedPane对象;public JTabbedPane(int tabPlacement, int tabLayoutPolicy):创建一个具有指定的选项卡布局和选项卡布局策略的空JTabbedPane对象。
其中:tabPlacement表示关于内容的选项卡布局,可选值为JTabbedPane.TOPJTabbedPane.BOTTOMJTabbedPane.LEFTJTabbedPane.RIGHTtabLayoutPolicy表示当一次运行中不能放入所有选项卡时选项卡布局的策略,可选值为JTabbedPane.WRAP_TAB_LAYOUT:如果一次运行不能放入所有选项卡,在多次运行中包装选项卡的布局策略。
JTabbedPane.SCROLL_TAB_LAYOUT:如果一次运行中不能放入所有选项卡,提供可用选项卡子集的布局策略。