ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

Swing图形界面程序设计.1Swing概述

2021-06-26 17:53:31  阅读:245  来源: 互联网

标签:Java 图形界面 AWT Swing 组件 图形用户界面 GUI 1Swing


第12章 Swing图形界面程序设计

图形用户界面(GUI全称是Graphical User Interface),是用户与应用程序交互的窗口。Java的图形用户界面由各种组件(component)组成。Java提供了丰富的类库用于GUI设计,这些类分别位于java.awt包和javax.swing包中,简称为AWT和Swing。

AWT是Abstract Window Toolkit抽象窗口工具集的缩写,目的是为了让开发人员使用AWT开发出适用于所有系统的图形界面,但是在旧的JDK版本中目标没有达到,在实际使用中,使用AWT设计的界面在不同平台太上会呈现不同的运行效果,如字体效果会发生变化等。为了更好的实现GUI开发,在JDK1.2版本之后新增Swing工具包作为AWT的扩展。Swing是在AWT基础上发展而来的轻量级组件,不仅改进了用户界面,而且所需系统资源更少,Swing是纯Java组件,完全实现了跨平台。

因为AWT不再是图形界面开发的主流,所以,本书该章节将只针对图形用户界面的Swing以及事件类、事件接口进行讲解。

 

12.1 Swing概述

设计Java图形用户界面的基本元素主要由图形用户界面工具包Swing提供,Swing包是AWT之后一套新的图形用户接口,包括用户界面组件、事件处理模型、图形和图像工具、布局管理器等。Swing是完全使用Java代码编写的,所以同Java本身一样可以跨平台运行,它为大规模的GUI开发提供了丰富的基础结构。

12.1.1 Swing特点

Swing具有如下特点:

  • 组件的多样性:Swing提供了很多新的图形用户界面组件,除了和AWT之前类似的JButton、JLabel等基本组件外,还增加了丰富的高级组件,如JTable、JTree等。
  • 可设置组件的外观:Swing外观采用课设置的模式,Swing可以使Java程序在一个平台上有不同的外观样式,由用户习惯决定。
  • 支持键盘代替鼠标的操作:在Swing组件中,可以使用JComponent类的registerKeyboardAction()方法,为Swing组件提供热键,使用户可以使用键盘代替鼠标操作。
  • 设置边框:对Swing组件可以设置一到多个边框。在Swing中提供的各式边框,用户可以根据自己的需求来借助边框,由布局管理器对容器中的组件进行合理布局。
  • 使用图标:Swing可以在组件上使用图标对组件进行修饰。

12.1.2 常用Swing组件概述

在Java语言中构成GUI的各类元素称为组件(Component),构建GUI的类可以分为三组:容器类、辅助类和组件类。

容器类是指用来包含其他组件的类,包括顶层容器和非顶层容器。顶层容器主要有Jframe、Japplet和Jdialog等,可以独立存在,具有放大、缩小、移动等功能。非顶层容器主要有Jpanel、JscrollPanel和JToolBar等,不能独立存在,必须放入窗口才能显示。

辅助类是用来描述组件信息的,如颜色类Color、字体类Font、绘图类Graphics等,不是Component类的子类,通常包含在java.awt包中。

在Swing组件类中,除JFrame、JApplet和JDialog都是JComponent类的子类,例如JButton、JTextArea、JList和JMenu等。Swing组件是围绕一个新的组件类JComponent建立的,JComponent是java.awt包中的Container类的子类,接下来先了解一Swing的体系结构,如图12.1所示。

 

  • Swing结构图watermark,size_14,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_20,type_ZmFuZ3poZW5naGVpdGk=

Window类是不依赖于其他容器存在的窗口,有两个子孙类JFrame和JDialog,在Java GUI应用程序开发中,一般独立应用程序主要使用窗口框架JFrame作为容器,JDialog一般用作对话框使用。

标签:Java,图形界面,AWT,Swing,组件,图形用户界面,GUI,1Swing
来源: https://blog.51cto.com/u_2096101/2949862

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有