基于Java的图形用户界面设计
- 格式:doc
- 大小:905.00 KB
- 文档页数:21
miglayout 例子【原创版】目录1.介绍 MigLayout2.MigLayout 的基本使用方法3.MigLayout 的布局选项4.MigLayout 的优点和局限性正文1.介绍 MigLayoutMigLayout 是一个基于 Java 的图形用户界面(GUI)布局管理系统。
它是 Migsoft 公司的产品,用于创建跨平台的桌面应用程序和 Web 应用程序。
MigLayout 提供了一种灵活、强大的方式来设计和管理应用程序的用户界面。
2.MigLayout 的基本使用方法要开始使用 MigLayout,首先需要下载并安装 MigLayout 库。
然后,可以通过以下步骤创建一个基本的 MigLayout 应用程序:(1)创建一个 Java 类,继承自 java.awt.Panel 或java.awt.Frame。
(2)在类的构造函数中,实例化一个 MigLayout 对象,并将其设置为容器的布局管理器。
(3)使用 MigLayout 的方法添加组件到容器中。
(4)设置组件的属性,如大小、位置和可见性等。
3.MigLayout 的布局选项MigLayout 提供了多种布局选项,可以满足不同需求。
以下是一些常用的布局选项:(1)流式布局(FlowLayout):默认的布局选项,按照组件添加的顺序从上到下、从左到右排列组件。
(2)边界布局(BoundaryLayout):按照组件的边界大小和位置排列组件。
(3)网格布局(GridLayout):将容器分为若干行和列,将组件按照网格排列。
(4)箱式布局(BoxLayout):将组件分组,并将组按照水平和垂直方向排列。
(5)堆叠布局(StackLayout):将组件按照堆叠顺序排列。
4.MigLayout 的优点和局限性MigLayout 的优点包括:(1)强大的布局功能,可以满足各种复杂的用户界面设计需求。
(2)易于学习和使用,降低了开发人员的学习成本。
java用户图形界面课程设计一、课程目标知识目标:1. 学生能理解Java图形用户界面(GUI)的基本原理和设计方法;2. 学生能掌握Swing组件库的使用,包括常用组件的创建和布局管理;3. 学生能运用事件处理机制,编写响应鼠标和键盘事件的程序;4. 学生了解Java多线程在GUI编程中的应用。
技能目标:1. 学生能够运用Swing组件和布局管理器设计出结构清晰、界面友好的图形用户界面;2. 学生能够独立编写事件监听器,实现用户与程序的交互;3. 学生能够利用多线程技术优化GUI程序,提高程序响应速度。
情感态度价值观目标:1. 培养学生对Java编程的兴趣和热情,激发他们探索新技术的欲望;2. 培养学生面对问题积极思考、勇于创新的精神,增强他们解决问题的自信心;3. 培养学生团队合作意识,提高沟通与协作能力。
本课程针对高年级学生,在学生已掌握Java基本语法和面向对象编程的基础上,进一步学习图形用户界面设计。
课程性质为实践性较强的学科,注重培养学生的实际操作能力和编程思维。
教学要求强调理论与实践相结合,鼓励学生动手实践,培养他们解决实际问题的能力。
通过本课程的学习,学生将能够独立设计并实现具有良好用户交互性的Java图形用户界面程序。
二、教学内容1. Java图形用户界面基础- Swing组件库介绍- 常用组件的使用(如JButton、JTextField、JLabel等)- 布局管理器(如BorderLayout、FlowLayout、GridLayout等)2. 事件处理机制- 事件和事件监听器- 常用事件类型(如鼠标事件、键盘事件等)- 事件适配器和内部类3. 多线程与GUI编程- 多线程概念与原理- 线程的创建与控制- GUI程序中的线程同步4. 实践项目- 设计并实现一个简单的计算器程序- 制作一个简易的画图工具- 开发一个记事本应用程序教学内容依据课程目标进行选择和组织,遵循由浅入深、循序渐进的原则。
实验九Java图形用户界面设计(1)一实验目的(1)掌握Frame与面板的使用(2)布局管理器的使用(3)布局管理器的使用(4)边界风格的使用(5)掌握简单Java事件的处理二实验内容1、创建并显示一个标题为“My Frame”,背景色为白色,大小为1000×1000的框架。
在该框架中放置八个按钮,按钮的标题分别为“按钮1”、……“按钮8”。
采用FlowLayout布局管理器。
程序:import java.awt.*;import javax.swing.*;public class Con1{private JFrame f;private JButton b1,b2,b3,b4,b5,b6,b7,b8;public static void main(String args[]){Con1 c=new Con1();c.go();}public void go(){f=new JFrame("My Frame");Container con=f.getContentPane();con.setLayout(new FlowLayout());con.setBackground(Color.white);con.setLayout(new FlowLayout(FlowLayout.RIGHT,920,50));b1=new JButton("按键1");b2=new JButton("按键2");b3=new JButton("按键3");b4=new JButton("按键4");b5=new JButton("按键5");b6=new JButton("按键6");b7=new JButton("按键7");b8=new JButton("按键8");con.add(b1); c on.add(b2); c on.add(b3); c on.add(b4);con.add(b5); c on.add(b6); c on.add(b7); c on.add(b8);f.setSize(1000,1000);f.setVisible(true);}}结果:2、编写一个java程序,在程序中生成一个框架窗口,设置窗口的布局管理器为网格式布局管理器,往窗口中加入9个按钮程序:结果:3、编写一个java程序,单击窗口的“关闭”按钮时退出程序,使用BorderFactory的静态方法创建边界,运行效果如下图所示:结果:4、构造一个Frame窗口,单击窗口的“关闭”按钮时退出程序(参考JFrame的setDefaultCloseOperation方法);Frame中包含一个“Presss Me”按钮,单击该按钮,在控制台显示单击次数:“你已经单击按钮X次!”。
Java的GUI设计打造美观直观的用户界面Java是一种广泛使用的编程语言,拥有着强大的图形用户界面(GUI)设计能力。
通过使用Java提供的各种GUI库和工具,开发人员可以轻松地创建美观、直观的用户界面。
本文将介绍一些在Java中实现这样的GUI设计的方法和技巧。
一、选择合适的GUI库在Java中,有多个GUI库可供选择,比如Swing、JavaFX等。
选择合适的GUI库是设计美观直观界面的第一步。
Swing是一个成熟的GUI库,提供了丰富的组件和布局管理器,可以满足大部分GUI设计需求。
JavaFX是Java官方推荐的GUI库,它提供了更现代化的界面设计风格和更优秀的性能。
二、使用布局管理器布局管理器是GUI设计中重要的一环,它定义了组件在窗口中的位置和大小。
Java提供了多种布局管理器,如FlowLayout、BorderLayout、GridLayout等。
通过合理选择和组合这些布局管理器,可以实现各种复杂的界面布局。
三、使用合适的图标和图片图标和图片在GUI设计中起着很重要的作用,可以通过它们来提升用户界面的美观性和直观性。
Java提供了处理图标和图片的功能和类库,开发人员可以使用这些功能来加载、处理和显示各种图标和图片。
四、使用合适的颜色和字体颜色和字体也是GUI设计中非常重要的元素,可以用来强调界面的重要信息或者创建特定的视觉效果。
Java提供了各种颜色和字体的类库和功能,可以用来选择合适的颜色和字体样式。
五、增加交互性一个好的用户界面应该具有良好的交互性,能够方便用户进行操作。
Java提供了丰富的事件处理机制和监听器,可以实现交互性功能。
开发人员可以通过监听用户的操作,及时响应并更新界面,实现更好的用户体验。
六、进行界面美化除了以上的基本设计原则,开发人员还可以通过一些额外的技巧来进一步美化用户界面。
比如使用渐变色背景、添加阴影效果、使用动画效果等。
这些技巧可以使界面更加生动、有趣,并提升用户的整体体验。
§5 Java 图形用户界面设计§5.1实验目的、内容及性质掌握 Java 的 GUI 设计技术,掌握 AWT 和 Swing 的应用技巧。
实验性质:验证、必做实验学时:2学时§5.2问题及思考1、最常见的AWT以及Swing控件用法。
2、几个常见布局总结3、区分容器控件和一般非容器控件4、Java事件几种关键组成部分以及事件处理流程§5.3实验指导1、Swing示例/*需要哪些组件,如何布局?*/import java.awt.*;import java.awt.event.*;import javax.swing.*;public class MyFrm extends JFrame{//从JFrame继承/*声明界面需要使用的控件*/JLabel lbl_name =new JLabel("用户名");JLabel lbl_pwd =new JLabel("密码");JTextField txt_name=new JTextField();JPasswordField txt_pwd=new JPasswordField();JButton btn_OK=new JButton("登陆");JButton btn_Cancel=new JButton("取消");/*在构造函数中将控件放置在JFrame上*/public MyFrm(){/*获取当前Frame的内容面板*/JPanel jp=(JPanel)this.getContentPane();/*设置内容面板的布局 Layout*/jp.setLayout(new GridLayout(3,2));jp.add(lbl_name);jp.add(txt_name);jp.add(lbl_pwd);jp.add(txt_pwd);jp.add(btn_OK);jp.add(btn_Cancel);this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);}public static void main(String arg[]){/*纯Java样式显示窗体*/JFrame.setDefaultLookAndFeelDecorated(true);/*实例化当前窗体类*/MyFrm frm=new MyFrm();frm.setSize(200,200);frm.setVisible(true);}}2、常用布局1)、流布局:FlowLayout 从左到右,自上而下方式在容器中排列,控件的大小不会随容器大小变化.容器.setLayout(new FlowLayout(FlowLayout.LEFT));2)、网格布局:GridLayout 按照指定行数与列数,将容器分成大小相等的单元格每个单元格放置一个控件. 不能将控件放在指定单元格容器.setLayout(new GridLayout(3,4,10,15));3)、边界布局:BorderLayout 将容器分成东、西、南、北、中五个部分容器.setLayout(new BorderLayout());窗口的内容面板默认布局就是边界布局。
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语言图形用户界面设计在菜单系统中的应用摘要:随着图形用户界面的问世,计算机操作变得越来越直观,不需要再去记忆那些Ms-Dos环境中的繁琐命令,用户可以直接通过窗口中菜单、工具、快捷键来使用、操作计算机,实现了人机互动。
由于计算机的操作便利,它已经普及到全社会的每个角落,成为了人们工作、生活不可缺少的工具。
关键词:图形用户界面,Frame,MenuBar,ActionListener一、组件的创建与使用在窗口(Frame)中创建菜单条类(MenuBar)对象,菜单(Menu)类对象嵌入在菜单条类(MenuBar)对象中,下拉式(pull-down)菜单嵌入在菜单(Menu)类对象中。
MenuBar bar=new MenuBar();Menu mu1=new Menu("前景颜色");MenuItem q1,q2,q3,q4;二、事件处理及响应面对一个图形用户界面,最关键的是实现人机交互,接受用户的输入,执行相应的动作操作。
q1.addActionListener(this);q2.addActionListener(this);q3.addActionListener(this);q4.addActionListener(this);public void actionPerformed(ActionEvent e){……}三、图形用户界面编程的应用本案例通过图形用户界面编程实现文本格式化设置。
行号exmenu .java1import java.awt.*;import java.awt.event.*;public class exmenu extends Frame implementsActionListener {MenuBar bar=new MenuBar();Menu mu1=new Menu("前景颜色"),mu2=new Menu("背景颜色"),mu3=new Menu("帮助");MenuItem q1,q2,q3,q4,b1,b2,b3,o1;23456789 TextField tf1=new TextField(25);Font myfont=new Font("黑体",Font.BOLD +Font.ITALIC,40); String str="Java 语言程序设计";public exmenu() {super("菜单操作"); setLayout(new FlowLayout());setMenuBar(bar); bar.add(mu1);bar.add(mu2); bar.add(mu3);mu1.add(q1=new MenuItem("红色")); mu1.add(q2=new MenuItem("绿色"));mu1.add(q3=new MenuItem("蓝色")); mu1.add(q4=new MenuItem("灰色"));mu2.add(b1=new MenuItem("黄色")); mu2.add(b2=new MenuItem("黑色"));mu2.add(b3=new MenuItem("橙色"));10 11 12 13 14 15 16 17 181 9mu3.add(o1=new MenuItem("退出"));mu1.insertSeparator(3);add(tf1);tf1.setText(str);tf1.setFont(myfont);setSize(600,100);setBackground(Color.cyan);setVisible(true);q1.addActionListener(this);q2.addActionListener(this);q3.addActionListener(this);q4.addActionListener(this);b1.addActionListener(this);b2.addActionListener(this);b3.addActionListener(this);o1.addActionListener(this); addWindowListener(new koWindowListener()); }public void actionPerformed(ActionEvent e)2 02 12 22 32 42 52 62 7282 93 03 13 23 33 43 53 63 73 83 9{if(e.getSource()==q1)tf1.setForeground(Color.red);else if(e.getSource()==q2)tf1.setForeground(Color.green);else if(e.getSource()==q3)tf1.setForeground(Color.blue);else if(e.getSource()==q4)tf1.setForeground(Color.gray);else if(e.getSource()==b1)tf1.setBackground(Color.yellow);else if(e.getSource()==b2)tf1.setBackground(Color.black);else if(e.getSource()==b3)tf1.setBackground(Color.orange);else if(e.getSource()==o1)System.exit(0);}class koWindowListener extends WindowAdapter4 04 14 24 34 44 54 64 74 84 95 05{public void windowClosing(WindowEvent e) {dispose();System.exit(0);}}public static void main(String args[]){new exmenu();}}15 25 35 45 55 65 75 85 96 06 16 26 36 46 56 66 76 86 97 07 17 27 374757677程序运行结果如图1,可单击窗口中“前景颜色”菜单设置文本颜色如图2,单击“背景颜色”菜单设置文本框颜色如图3,单击“帮助”菜单选择“退出”子菜单关闭窗口如图4。
目录一引言 (1)二图形用户界面 (1)(一)注重图形用户界面的设计 (1)(二)出色的图形用户界面设计 (2)1.为用户设计 (2)2.清楚一致的设计 (2)3.注意美学因素 (2)4.细节辅助 (2)三Java Swing简介 (2)(一)Swing的特性 (3)1.可插拔外观风格 (3)2.轻型组件 (3)3.如何使用Swing (3)(二)Swing程序包和类 (4)(三)MVC体系结构 (5)1.模型 (5)2.视图 (5)3.控制器 (5)四图像浏览器的设计与实现 (6)(一)需求分析 (6)1.功能需求 (6)2.环境配置 (7)(二)界面结构设计 (7)(三)组件的选用 (7)(四)主要模块功能及实现 (9)1. JImageViewer (9)2. JImageFrame (9)3. TreeExplorer (10)4. JFancyButton (10)5. LnFListener (10)五程序运行情况说明 (10)六小结 (11)致谢 (12)参考文献 (12)附录 (12)基于Java的图形用户界面设计摘要本文讨论了基于Java的图形用户界面设计。
对图形用户界面、Swing作了简单的介绍,给出了一个图像浏览器用Java语言实现的详细设计过程。
在这个图像浏览器中,使用到了Java开发工具包中的Swing库中的一些常用的标准或经扩展了的图形界面元素和处理图形界面的各种事件。
运行和程序测试结果表明:这个浏览器运行良好,能打开gif、jpg、png格式的文件,完成前一张、后一张、放大、缩小等常用操作。
关键词Java Swing图形用户界面软件设计一引言设计和构造用户界面,是软件开发中的一项重要工作。
用户界面是计算机的使用者-用户与计算机系统交互的接口,用户界面功能是否完善,使用是否方便,将直接影响到用户对应用软件的使用。
图形用户界面(Graphics User Interface)简称GUI,使用图形的方式,帮助用户方便地向计算机系统发出命令,启动操作,并将系统运行的结果同样以图形的方式显示给用户。
图形用户界面画面生动、操作简便,省去了字符界面用户必须记忆各种命令的麻烦,深受广大用户的喜爱和欢迎,已经成为目前几乎所有应用软件的既成标准。
所以,学习设计和开发图形用户界面,是应用软件开发人员必修的一课[1]。
Java语言中,为了方便图形用户界面的开发,设计了专门的java.awt类库来生成各种标准图形界面元素和处理图形界面的各种事件。
但是AWT的功能还不是很完全,Java程序的图形用户界面在不同的平台上(例如,在不同的浏览器中)可能会出现不同的运行效果,如窗口大小、字体效果将发生变化等[1]。
Swing是Sun Microsystems 建立的下一代GUI工具包,它包含比AWT更多的图形组件。
Swing支持任意数量嵌套边框的镶边替代物,支持工具提示,可以任意地将键盘事件绑定到组件中,并且Swing中存在支持用来绘制自定义轻型组件的附加调试操作。
除了新的组件之外,Swing还对AWT做出了三个主要改进[2],它们是轻型组件、可插拔的外观风格和采用MVC模式,这使得Swing在GUI的设计上表现更为灵活。
因此,鉴于学习设计和开发图形用户界面的重要性,和Java中Swing组件在表现图形界面上的优势,在这个课题中,我们选用Swing 包中的J组件实现了一个图像浏览器。
二图形用户界面图形用户界面(GUI)已成为用户界面的首选。
而图形用户界面的设计则成为一般的软件开发中必不可少并且重要的工作。
那么,好的图形用户界面能带来怎样的好处呢?怎样的界面才是出色的呢?下面,我们就来对这两方面作一个简单的介绍。
(一)注重图形用户界面的设计用户界面是用户与系统间的桥梁,界面设计的好坏,直接影响用户对软件的使用和评价。
也许一个软件具有很强大的功能,但如果其界面不能使用户与系统间有良好、通畅的沟通,那么那些强大的功能也很难较好地发挥它的效用。
而一个具有良好界面的软件更容易被用户所接受、所欢迎。
一个连贯的具有清晰的视觉表达效果的图形界面(GUI),不仅能给用户带来正面的情绪反应,甚至能在一定程度上帮助用户去发现和理解软件的功能,戏剧般地提高其可用性。
我们都希望设计出功能很好的软件以满足用户需求,那么,为了让它能更方便地被使用,迎得更多的用户去使用自己的产品,我们有什么理由不在用户界面上下功夫呢?(二)出色的图形用户界面设计成功的GUI设计具有很多共同的特征。
最重要的是,好的图形用户界面是凭直觉去使用的,直觉对于有目的的用户意味着容易理解。
那种界面一目了然,清晰以致于“透明”,因为界面不干涉它们本该完成的任务。
做到这点并不容易,这种界面用起来方便,设计起来却很困难。
需要在很多方面花时间和精力。
1.为用户设计设计者不是用户,他需要设计出自己的界面来迎合用户的期望和精神模式,所以弄清楚谁是自己的用户是非常重要的。
例如,通过对用户的了解,可以知道用户最常用的操作是哪些,就把它们安排在界面上显眼的位置,不是很常用的可以隐含的深一点。
又如一个图标设计成何种形象,才会使用户一看便知那是什么功能。
2.清楚一致的设计除了同一软件各模块中的术语、风格表达一致外,应该在程序中实现同用户以前使用过的其它成功软件一致的动作。
如一般软件中的剪切功能以“剪刀”形象标明,“ctrl+X”为快捷键,自己设计时就不要弄成“锤子”和“Ctrl+T”。
3.注意美学因素开发一个图形化的用户界面组件意味着你必须掌握对视觉效果和情感响应的表达。
在界面的色彩、布局和图标的精致等方面要有所考究。
4.细节辅助①提供可视反馈。
作为最一般的规则,当一个操作超过7~10秒的时候(时间的长短要根据用户类型和应用程序的特点来调整),大多数用户希望看到一个带有进度条的消息对话框。
②提供声音反馈。
尤其是在需要警告用户一个严重问题产生的地方,声音反馈是有用的。
但同时也应该允许用户取消声音反馈,除非错误不得不通知。
③提供键盘支持。
加速键可以给用户提供一种非常有效的操作方式来访问窗口中的指定菜单项和控件。
加速键应该易于使用并限制在一到两个键(如F3或者Ctrl+P)。
三Java Swing简介浏览Java的主页(/)时,可以找到对Swing的说明,它被描述成一组可定制的图形组件,可以在运行时指定这些组件的外观风格。
不过,Swing实际上不只这些,它允许使用Java语言进行企业级开发。
程序员可以使用Swing建立包含许多功能强大的组件的大型Java应用程序,并且可以更容易地扩充或者修改这些组件以控制它们的外观和行为。
那么,为了能较好地发挥Swing的优势来为自己的Java 应用程序增色,首先就要对Swing 有一个总体的认识。
(一)Swing的特性1.可插拔外观风格Swing类最让人激动的一个方面是能够规定每个组件的外观风格,甚至可以在运行时重新设置外观风格。
这种特性叫做“可插拔外观风格”(Pluggable Look-and-Feel,或简称PLAF)。
Swing能够模拟几种外观风格,并且它目前支持Windows、Unix Motif和“本地”Java Metal 外观风格。
此外,Swing允许用户在运行时转换外观风格,而不必关闭应用程序。
这样,用户可以进行实验,通过即时反馈来查看哪一个外观风格是自己最喜欢的。
并且,用户甚至可以为每一个Swing组件建立自己的外观风格。
2.轻型组件绝大多数Swing组件都是轻型的。
在最完美的情况下,这意味着这些组件并不依赖本地对等组件来绘制自己。
相反,它们使用简化的图形基本元素在屏幕上描绘自己,甚至允许部分图像是透明的。
只有少数顶层容器不是轻型的(如JFrame和JWindow)。
这个设计允许程序设计人员在运行时绘制(和重新绘制)自己的应用程序的外观风格,而不是对主机操作系统的外观风格进行这样的尝试。
此外,Swing组件的设计支持对组件行为进行随意修改。
例如,可以告诉几乎所有的Swing组件用户是希望接受输入焦点还是希望拒绝输入焦点,可以告诉它应该如何处理键盘输入。
3.如何使用Swing不是人人都为了同一个原因而使用Swing。
实际上,因为有着各种级别的必须预先具备的知识,所以Swing库有许多使用级别。
以下是一些可能的用途:①在打算建立自己的企业级应用程序时使用Swing组件。
第一种方法是大多数Swing组件所使用的方法。
在这时,使用Swing组件类似于使用AWT组件。
常见的组件、容器和布局管理器都可以从Swing程序包中获得,它们有助于建立并快速运行应用程序。
如果擅长使用AWT组件进行编程,只需要浏览对每个组件的粗略介绍,就可以开始使用了。
只有在使用一些更大并且更新的组件(如表和文本),或者打算将每个组件用作JavaBean进行可视编程时,才必须考虑更多的问题。
②建立自定义Swing组件――或者扩展已经存在的组件。
建立自定义组件或者扩展现有的组件需要更深入地了解Swing。
这时一定要了解Swing体系结构、事件和较低级别的类。
此外,如果决定细分Swing组件,则必须承担处理这个组件的责任,否则,新组件的执行情况就可能是不定的。
③为一个或者多个Swing组件覆盖或者建立一个新的外观风格。
最后,用户可能希望更改一个或者多个Swing组件的外观风格。
这是可以使用的3种方法中最复杂的一种方法,它要求全面了解每个组件的设计、体系结构基本原理和图形基本元素。
此外,用户必须了解如何使用Swing的UIManager和UIDefaults类来“设置”每个组件的外观风格。
(二)Swing程序包和类Swing库中的程序包很多,只在此大致介绍在后面的图像浏览器的实现中用到的程序包。
其中用得最多的当然是javax.swing,另外有javax.swing.border、javax.swing.event、javax.swing.tree、javax.swing.filechooser。
以下给出了这些程序包的简短描述。
图1展示了Swing组件(类)间的继承关系。
1.javax.swing包含核心Swing组件,其中包括绝大多数模型接口和支持类。
2.javax.swing.border包含对抽象边框类的定义和8个预定义的边框。
边框不是组件,它们是特殊的图形元素,Swing将它们作为属性对待,并将它们放置在组件周围,用它们来代替镶边。
如果想建立自定义边框,则可以细分这个程包中某个现有的边框或者从头开始编写一个新的边框。
3.javax.swing.event定义了几个Swing组件用来在类之间传达异步信息的新的监听器和事件。
为了建立自定义事件,可以细分这个程序包中的各种事件,或者编写自己的事件类。
4.javax.swing.filechooser包含对JFileChooser组件的支持。