选择显示字体大小

jfc/swing活学活用系列之定制jlist显示

下载本文源代码

  引言

  在图形用户界面方面(gui),java一直无法与c++、pb、delphi之类抗衡,使用早期java/awt包所开发的界面实在是让人不敢恭维。随着jfc/swing的日趋成熟,开发出与可以与c++媲美的gui不再是"不可能完成的任务"。除了具有丰富的界面组件之外,以下优秀的特性更让swing如虎添翼。swing是以100%纯java实现的,且辅以jdk 1.1 轻量级ui框架为基础,没有本地代码,独立于操作系统之外,基于mvc设计模式、采用可插入的外观感觉(pl&f),这都让我们忍不住去感受一下她的魅力。

  完整的jfc十分巨大,swing只是其中的一部分,本文将着重于swing包中的jlist组件以及如何定制显示。

  jlist基础知识

  由jlist类代表的swing列表显示一个可选取对象列表,它支持三种选取模式:单选取、单间隔选取、多间隔选取。

  基于mvc的构建思想,jlist类不维护对它所显示的那些对象的引用,而是把数据管理工作委托给一个实现listmodel接口的对象;jlist类不对其显示对象的选取操作进行跟踪和维护,而是把选取管理的工作委托给一个实现listselectionmodel接口的对象;jlist类不绘制其所显示的对象,而是把列表单元的绘制工作委托给一个实现listcellrenderer接口的对象。

  jlist组件把三个主要的工作(数据处理、列表项选取、单元绘制)交给其它对对象来完成,jlist的每个实例都维护对上述对象的引用,这样大大降低了各个功能模块的耦合度,易于扩展和维护。

  jlist如何显示对象列表?

  缺省情况下,jlist对象对图标和字符串对象会按照原样显示,而对于其它所有对象只显示对象tostring()方法的返回值。举个例子吧,有这样一个应用程序显示java.util.locale对象列表给用户,用户可以通过选择列表中的项目来改变应用程序所的处的语言环境。

  想象一下,jlist将如何显示一个包含了locale对象的数据模型呢?jlist委派javax.swing.listcellrenderer来显示这些对象。正如我们所料,listcellrenderer将把对象tostring()方法的返回值显示出来。然而,locale对象返回的是iso代码,这样的显示肯定是不符合"界面交互友好"原则的。默认情况下jlist所显示的内容让大多数用户感到莫名其妙,如下图所示:


关键字 本文所属关键字

相关 与本文相关文章

分类 所有文章关键字导航

源码编程相关

Java   Asp   PHP   .Net   XML   C/C++   CGI   VB   Jsp   J2ee   J2se   J2me   EJB   Servlet   Tomcat   Resin   Struts   Weblogic   Eclipse   ANT   GUI   JMS   Web servise   IDEA   Webphere   Hibernate   Spring   Jboss   Applet   Swing   Socket   Javamail   Perl   Ajax   P2P   安全   模式   框架   测试   开源   游戏

SQL数据库相关

My-SQL   Ms-SQL   Access   DB2   Oracle   Sybase   SQLserver   索引   存储过程   加密   数据库   分页   视图  

手机无线相关

3G   Wap   CDMA   GRPS   GSM   IVR   彩信   短信   无线   增值业务

网页设计制作相关

HTML   CSS   网页配色   网页特效   Javascript   VBscript   Dreamweaver   Frontpage   JS   Web   网站设计

网站建设推广相关

建站经验   网站优化   网站排名   推广   Alexa

操作系统/服务器相关

Windows XP   Windows 2000   Windows 2003   Windows Me   Windows 9.x   Linux   UNIX   注册表   操作系统   服务器   应用服务器

图形图像多媒体相关

Photoshop   Fireworks   Flash   Coreldraw   Illustrator   Freehand   Photoimpact   多媒体   图形图像

标准 网站致力的规范