- 浏览: 37399 次
- 性别:
- 来自: 天津
最新评论
Swing组件支持当光标停留在其上时显示简短的弹出信息的功能。用来显示弹出信息的类就是JToolTip。 调用JComponent的public void setToolTipText(String text)方法可以使得当鼠标停留在一个安装了弹出信息的组件上时自动创建JToolTip实例。我们通常并不直接调用JToolTip构造函数。只有一个构造器,而他是无参数的变体。
工具提示的文本通常只是一行的长度。然而,如果文本字符串以开头(在许多情况下如此),那么文本的内容可以任意的HTML 3.2格式化文本。例如,下面的代码使得弹出信息如图4-3所示:
正如在本章稍后的"自定义JToolTip观感"一节中所讨论的,我们可以通过为JToolTip设置UIResource元素很容易的自定义所有的弹出信息的显示特点。
JComponent类定义了一种简单的方法可以使得我们自定义当光标停留在某一个特定的组件上时工具提示的显示特点。我们只需要简单的继承我们要自定义的组件类并重写继承的public JToolTip createToolTip()方法。当ToolTipManager决定需要显示弹出信息的时候会调用createToolTip()方法。
要自定义弹出工具提示的外观,只需要重写这个方法并自定义由继承的方法所返回的JToolTip。例如,下面的代码显示了JButton工具提示的颜色的自定义,如图4-4所示。
在创建了JToolTip之后,我们可以配置继承的JComponent属性或是任何特定的JToolTip属性,如表4-5所示。
JToolTip属性 Swing组件甚至支持基于鼠标位置的不同工具提示文本的显示。这需要重写public boolean contains(int x, int y)方法,这是由Component类继承的。
例如,在实现了前一节自定义的JButton的创建之后,工具提示文本可以依据鼠标点是否位距离组件左边50像素之内而显示不同的文本。 JButton button = new JButton("Hello, World") { public JToolTip createToolTip() { JToolTip tip = super.createToolTip(); tip.setBackground(Color.YELLOW); tip.setForeground(Color.RED); return tip; } publicboolean contains(int x, int y) { if (x 组件:Motif, Widnows与Ocean。
用于JToolTip的UIResource相关的属性显示在表4-6中。对于JToolTip组件,有9个不同的属性。
JToolTip UIResource元素 正如在本章的前面所注意到的,JToolTip类支持HTML内容的显示。这可以实现多列与多行输入的显示。 尽管由于JComponent创建并创建并显示其自己的JToolTip,JToolTip在某种程度上是一个被动对象,其使用也有许多可以配置的方面。然而,这些配置是由管理工具提示的类来负责的,而不是由JToolTip本身负责。管理工具提示使用的类被称之为ToolTipManager类。由于使用了单例设计模式,ToolTipManager类并不存在构造函数。相反,我们可以通过ToolTipManager的静态sharedInstance()方法获得当前的管理器。 一旦我们获得了ToolTipManager的共享实例,我们就可以定制工具提示文本何时以及是否显示。如表4-7所示,有五个可配置的属性。
ToolTipManager属性 初始时,工具提示是允许的,我们可通过ToolTipManager.shareInstance().setEnabled(false)方法来禁止。这使得我们可以将工具提示与组件相关联,并允许终端在需要允许或禁止工具提示。
有三个面向时间的属性:initialDelay, dimissDelay与reshowDelay。他们均以毫秒计数。initialDelay属性是合适的工具提示出现之前用户必须将鼠标停留在组件内部的毫秒数。dismissDelay指定当鼠标停止运动时文本显示的时间长度;如果用户移动鼠标,也会使得文本消失。reshowDelay决定用户重新进入组件并且使得弹出文本显示时在组件外部必须停留的时间。
lightWeightPopupEnabled属性用来决定存储工具提示文本的弹出窗口类型。如果这个属性为true,则弹出文本适应顶级窗口的边界之内,文本出现在一个Swing JPanel内部。如果这个属性为false,则弹出文本适应顶级窗口的边界之内,文本出现在一个AWT Panel之内。如果文本的部分内容不能出现在顶级窗口之内,无论属性设置为何值,弹出文本将会出现在Window内。
尽管不是ToolTipManager的属性,ToolTipManager的两个方法值得一提: JTree tree = new JTree(...); ToolTipManager.sharedInstance().registerComponent( tree); TreeCellRenderer renderer = new ATreeCellRenderer(...); tree.setCellRenderer(renderer); ... publicclass ATreeCellRenderer implements TreeCellRenderer { ... public Component getTreeCellRendererComponent(JTree tree, Object value, boolean selected, boolean expanded, boolean leaf, int row, boolean hasFocus) { ... renderer.setToolTipText("Some Tip"); return renderer; } }
发表评论
-
C/C++中的字符串
2012-07-06 09:51 1263getch函数 Head File # ... -
js 正则表达式2乱
2012-07-06 09:37 623js正则表达式详解[ ... -
游戏程序中的骨骼插件
2012-07-06 09:29 935如有转载,请详细标明原文作者,以示尊重! 作者:潘李亮 ... -
Chrome Safari Firefox 中 IFRAME 元素在文档树中发生变化后父子页面间的某些交互方式会失效
2012-07-05 20:44 769window 对象中的 frames 集合可以返回当前 w ... -
核心Swing组件(二)
2012-07-03 12:19 632Swing组件支持当光标停留在其上时显示简短的弹出信息 ... -
自定义网页滚动条
2012-07-02 10:16 554用户操作 [留言] [发消息] [加为好友] ... -
Three ways to set a custom busy cursor in flex
2012-07-02 10:16 669First, prepare your custom cu ... -
flex 事件触发篇
2012-07-02 10:16 756事件触发篇 完整代码 ... -
FLEX SPY的地址和示例
2012-07-02 10:16 713FLEXSPY 可以实时查看画面style,还可进行修改 ... -
תдQTPѧϰ
2012-07-02 09:42 622... -
myeclipse6.5+flex 3 + tomcat6.0 + ds-console.war环境搭建
2012-07-01 09:38 680安装环境:myeclipse6 ... -
The architecture of Flex and Java applications two (Flex 和 Java 应用程序架构 2)
2012-07-01 09:38 582Flex and Java application ... -
Flex4+Spring3+Hibernate3+BlazeDS整合笔记
2012-07-01 09:37 642普通Java Web工程流行使用ssh框架,而当前台使用F ... -
PHP作为Flex程序的数据源
2012-07-01 09:37 550Adobe Flash Builder 4 简体中文正式版 ... -
“error LNK1169: 找到一个或多个多重定义的符号”的解决方法(转载)
2012-06-30 17:54 1219问题描述如下: 有 三个源文件,A.h、B.cpp ... -
关于oracle数据库启动报ORA-01122,ORA-01110,ORA-01203错误的解决方法
2012-06-30 17:54 14252关于oracle数据库 ... -
转:IE和Firefox的div高度自适应解决方法
2012-06-30 17:54 643IE中div的高度会根据内容来自适应高度。但是FIrefo ... -
安装tinyos中遇到的问题及解决方法_转载
2012-06-30 17:54 937问题1.安装rpm的时候出现unpacking of ar ... -
安装VS2003出现问题――Microsoft FrontPage 2000 Web 扩展客户端安装不成功 及其解决方法
2012-06-30 17:53 4290前言: 之前在公司安装VS2003的时候,没有出现过 ...
相关推荐
用大量图示分析了Swing组件的特点、结构及相互关系,使有经验的编程人员能高效利用Swing的强大功能。本书对掌握Swing技术提供了最全面的参考 资源太大,传百度网盘了,链接在附件中,有需要的同学自取。
Swing JTable组件设置单元格合并,内置Test测试类,核心API GridBagTable tasktable = new GridBagTable(model); tasktable.mergeCells(startRow, endRow, 0, 0);
这个图书管理系统,主要是对图书和员工进行管理、维护,基本实现了借阅到规划图书的流程,采用swing组件,由纯Java语言编写而成,核心就是对数据库的增、删、改查
全书共14章,包括Java基本的程序结构、对象与类、继承、接口与内部类、图形程序设计、事件处理、Swing用户界面组件、部署应用程序和Applet、异常日志断言和调试、叙述方式深入浅出,并包含大量示例,从而帮助读者...
系统基于JAVA的Application模式,使用Swing组件作为系统用户界面和MYSQL小型数据库管理系统实现。主要提供用户查询功能、住宿管理等功能,提供管理员客房、用户、系统信息的管理功能。 该系统遵循软件工程中的开发...
学习笔记:整理了Java语言在游戏开发中的核心知识点和常用技术,方便你随时查阅和学习。 适用人群: 这份资源包适用于所有对Java游戏开发感兴趣的朋友,无论你是计算机专业的学生,还是希望业余时间尝试游戏开发的...
这是什么JHexViewer是基本的十六进制查看器Swing组件,可用于基于它创建更复杂的十六进制查看器。 为了使它可定制且易于扩展,我们付出了很多努力,而不是强迫您使用固定的实现。 几乎所有内容都可以更改,例如内容...
系统基于JAVA的Application模式,使用Swing组件作为系统用户界面和MYSQL小型数据库管理系统实现。主要提供用户查询功能、住宿管理等功能,提供管理员客房、用户、系统信息的管理功能。 该系统遵循软件工程中的开发...
全书共14章,包括Java基本的程序结构、对象与类、继承、接口与内部类、图形程序设计、事件处理、Swing用户界面组件、部署应用程序和Applet、异常日志断言和调试、叙述方式深入浅出,并包含大量示例,从而帮助读者...
掌握Java语言基础知识 理解面向对象的编程思想 运用Java编写命令行程序 运用JDBC编写数据库访问程序 运用Swing组件编写图形用户界面程序 运用Swing组件和JDBC实现C/S结构的应用程序
可视化浏览应用程序组件层次结构 监控 AWT/Swing 事件 调试 2D 图形 轻松找到源代码中负责创建特定 UI 的位置。 监控线程规则违规 下面显示了 Swing Explorer 如何检查基本的 Swing 应用程序。 有关 Swing Explorer ...
全书共14章,包括Java基本的程序结构、对象与类、继承、接口与内部类、图形程序设计、事件处理、Swing用户界面组件、部署应用程序和Applet、异常日志断言和调试、叙述方式深入浅出,并包含大量示例,从而帮助读者...
全书共14章,包括Java基本的程序结构、对象与类、继承、接口与内部类、图形程序设计、事件处理、Swing用户界面组件、部署应用程序和Applet、异常日志断言和调试、叙述方式深入浅出,并包含大量示例,从而帮助读者...
第二部分(第17~21章)介绍 Swing,首先对用 Swing 进行 GUI 编程进行概述,阐述组件、事件、布局管理器的基本概念,然后依次对 Swing 组件、菜单、对话框、绘图等进行介绍。 第三部分(第22~27章)探究 Java API ...
全书共14章,包括Java基本的程序结构、对象与类、继承、接口与内部类、图形程序设计、事件处理、Swing用户界面组件、部署应用程序和Applet、异常日志断言和调试、叙述方式深入浅出,并包含大量示例,从而帮助读者...
连连看是一种消除类益智游戏,核心要求是在规定的时间内,消除...本系统主要是运用Swing组件和事件处理技术,进行界面的绘制,鼠标的操作,以及积分的显示和沙漏的计时的显示等功能。 关键词:游戏;连连看;二维游戏
全书共14章,包括Java基本的程序结构、对象与类、继承、接口与内部类、图形程序设计、事件处理、Swing用户界面组件、部署应用程序和Applet、异常日志断言和调试、叙述方式深入浅出,并包含大量示例,从而帮助读者...
连连看是一种消除类益智游戏,核心要求是在规定的时间内,消除游戏界面...本系统主要是运用Swing组件和事件处理技术,进行界面的绘制,鼠标的操作,以及积分的显示和沙漏的计时的显示等功能。 :游戏;连连看;二维游戏