知识大全 用状态栏提示改善JavaGUI

Posted

篇首语:再长的路,一步步也能走完;再短的路,不迈开双脚也无法到达。本文由小常识网(cha138.com)小编为大家整理,主要介绍了知识大全 用状态栏提示改善JavaGUI相关的知识,希望对你有一定的参考价值。

用状态栏提示改善JavaGUI  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!

  一个应用程序有多复杂都无关紧要 用户并需要去阅读你的文档 他们试着自己解决怎样去完成给定的任务 当其它所有的事都以失败告终时 他们更倾向于去问别的人而不是阅读文档     因此 作为软件开发者 使我们的应用程序尽可能的容易和直观 这完全取决于我们 在这篇文章中 我将会介绍你可以用来达到这一目标的几种方法中的一种 那就是用提供线索来帮助用户理解他的应用程序      引导用户   让应用程序用起来更容易的最常用的方法之一是对用户界面的每一个要素提供细小的线索――提示 The Swing框架以工具提示窗口的形式提供了对这一方法的执行 你可以通过调用它的setToolTipText的方法来为所有的Swing组件设置一个工具提示     当工具提示设好以后 任何时候只要鼠标指针的指示器进入其中的组件 一个包含着文本(提示)的小窗口会在组件的上方显示一会儿 这一提示的目的是让用户知道那些组件是用来干什么用的 怎样使用它们 以及你觉得哪些信息是有用的     尽管使用工具提示很直截了当 但还是有一些缺点 由于Swing的执行并不超出文本 因而工具提示只适用于很小的提示 你必须等著工具提示显示出来 然后在它消失之前阅读它 由于提示是显示在组件上面的 使它们看起来多少有些打扰 正因为这个原因 它们在诸如菜单选项的这样的组件上看起来并不那么好     另一种常用的方法是将提示显示在应用程序的状态栏上 这一观点与前面所讲的一样 也就是说 当鼠标指针指示器进入组件时提示会显示出来 而当鼠标指针移开时它也就消失了 但是 由于提示是显示在专为提示保留的位置上 它是可以选择的 因而并不会遭受到工具提示的不良影响      执行鼠标在上面时的提示   不幸的是 Swing并不为状态栏提示提供内置支持 然而 你自己执行状态栏提示并不困难 你需要做的基本上就是为每一个你想要显示的组件注册一个鼠标监听器 并实现MouseListener接口里的mouseEnter方法和mouseExited方法     mouseEntered这一方法将为组件显示提示 mouseExited则将其移开 事件源可以用来识别组件 并选择要显示哪些提示 这样一来 你就不需要为每一个组件注册一个不同的鼠标监听器     MouseOverHintManager(列表A)是一种可再次使用的类 它提供了状态栏提示的执行 它的使用是直截了当的 只要通过一个Jlabel实例去构造一个MouseOverHintManager实例 就可以用来显示提示 调用addHintF方法或者为每一个你想要的组件设置一个提示 调用方法enableHints来为用户界面顶端的容器(视窗 构架 对话框 等等)等用户界面来设置提示     MouseOverHintManager方法的执行非常接近前面所介绍的 AddHint or方法 接受到一个作为参数的成分所涉及的以及与之相对应的提示 将它们保存在一个Map中以备以后修复时用 可以注意到那些提示是保存在WealHashMan的实例中的 这样一来 在没有更多的涉及到相应的组件时 如果需要的话它们能够自动垃圾回收 正因为这样 我们不需要找一种移走这些提示的方法     EnableHints这一方法将MouseOverHintManager作为一个鼠标监听器添加到所有的作为参数被传递的顶端组件中 如子组件 菜单元素等等       MouseEntered方法使用源事件 也就是鼠标指针指示器所进入的组件 这一方法把这些源事件作为一个从Map重新得到它的提示的线索 并在构造器所保存的Jlabel上显示它 MouseExited方法则将Jlabel设置成空白来清除提示      注意特殊案例   那些提示之所以有如所期望的那样显示是因为有一些值得注意的小窍门 首先 注意一下mouseEntered方法是为产生事件的组件而设置那些提示的 如果组件没有提示的话 mouseEntered会检查它的父类是否有     这一过程会持续到达到顶端的组件或找到显示给用户的提示的时候 这一逻辑允许你为一个容器设置一个提示 就像一个面板 让它所有的孩子显示相同的提示 或者为父亲设置一个提示并且为孩子设置另外一个不同的提示      另一个窍门是getHintFor方法 mouseEntered调用它来为一个组件设置提示 如果它接受的作为一个参数的组件没有提示的话 它会检测一些特殊的案例 如果那些组件是一个Jlabel或JtableHeader 这一方法将会分别返回那些附有Jlabel组件的提示或Jtable的提示 用这样的方法 你就不需要为一个组件设一个提示然后又再为它的标签设一个提示 纵使它们以单独的组件的形式显示也无妨      使提示进入工作中   MouseOverHintDemo(列表B)是一个用来说明怎样用MouseOverHintManager类的简单例子 它只创建了一个有一个状态栏来显示提示和一些最常用的Swing组件的Jframe     这个例子很是简单明了 它仅仅创制了用户界面的所有组件 为它们设置提示 建立应用程序的主窗口 调用MouseOverHintManager enableHints 注意到在建立用户界面以后 调用enableHints作为最后的操作是很重要的 因此enablehints可以为所有的组件注册鼠标监听器 这是必须的 这样一来 MouseOverHintManager从所有组件那里接受鼠标事件 还可以为每一案例选择合适的提示     运行这个例子时会显示有着少数几个控制装置的简单窗口 在那些组件和菜单元素上移动鼠标 可以看见在每一个应用程序的状态栏显示一个提示 注意一下有两个无线电按纽显示相同的提示 它们实际上是在他们的父面板上设置的     使用提示是让应用程序用起来更容易的重要方法 状态栏提示相对Swing工具提示是一个可选择的办法 而且它们很容易执行 用户几乎不需要阅读你的说明文档 因而 作为软件开发者 让我们的应用程序尽可能的容易和直观完全取决于我们 如果你在写一个JavaGUI 这是一个帮助添加状态栏提示的简单方法 cha138/Article/program/Java/JSP/201311/19588

相关参考

知识大全 用DELPHI在状态栏中显示进程条[1]

用DELPHI在状态栏中显示进程条[1]  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!经常上网的朋

知识大全 Js特效向右侧滑出的信息提示栏

Js特效向右侧滑出的信息提示栏  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! <>&l

知识大全 增值税提示主表第1栏第2列不等于附列资料第8栏怎么办

增值税提示主表第1栏第2列不等于附列资料第8栏怎么办增值税提示主表第1栏第2列不等于附列资料第8栏,那么就按这个提示来处理。增值税主表第8栏有数字,但是第9栏忘记填写,已申报现在要怎么办现在还在报税期

知识大全 随心所欲绘制状态栏

  状态栏我不想详细解释控件非常容易用StatusBar和StatusBarPanel配合使用非常简单但是这样只是满足了基本的状态栏功能的需要很多的时候我们可能还需要个性化的状态栏我们需要随心所欲的绘

知识大全 网页状态栏特效全攻略

  在上网时我们注意往往是网站页面内容而状态栏不会被人太多注意如果我们给页面的状态栏加一些特效肯定会使你的网站增添一道风景下面就给大家介绍种常见的状态栏特效的Javascript代码  特效一滚动显示

知识大全 平板电脑上下状态栏都没有了,怎么办

平板电脑上下状态栏都没有了,怎么办?平板电脑是一中没有返回键没有主页键没有选项键的,那种全触摸屏状态栏崩溃了我之前也是你重置ADW试试或者去运行中的程序把状态栏关闭重启再不济恢复出厂设置(我就是)安卓

知识大全 winform状态栏跑马灯的效果

   usingSystemCollectionsGeneric;   usingSystemComponentModel;   usingSystemData;&nbs

知识大全 时钟广告跳转状态栏等JS代码

时钟广告跳转状态栏等JS代码  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  判断网页是否过期ge

知识大全 VB.NET实现窗体图标最小化到状态栏

VB.NET实现窗体图标最小化到状态栏  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  本文所使用

知识大全 我今天2点58的时候委托买股票,现在状态说明栏显示的是已报,我是买到没有呢

我今天2点58的时候委托买股票,现在状态说明栏显示的是已报,我是买到没有呢?账户上的钱怎么不见了您好,针对您的问题,国泰君安上海分公司给予如下解答您好,显示“已报”,就是这笔委托已经发送出去了,但是没