浅析SwingSet示例

 Swing 工具包提供各种用于创建用户界面的工具和几乎令人眼花缭乱的选项,这些选项用于在程序生存期间修改界面。小心地使用这些功能可以导致界面能够适应用户的需要并简化交互过程。粗心地使用同样的功能可以导致非常混乱或彻底不可用的程序。您将修改随 Sun JDK 一起提供的基于 Swing Set示例应用程序的源代码;此应用程序的 UI 使用许多动态的特性并且可以作为理解它们的极好的起点。

创新互联成立以来不断整合自身及行业资源、不断突破观念以使企业策略得到完善和成熟,建立了一套“以技术为基点,以客户需求中心、市场为导向”的快速反应体系。对公司的主营项目,如中高端企业网站企划 / 设计、行业 / 企业门户设计推广、行业门户平台运营、app软件开发公司手机网站制作、微信网站制作、软件开发、电信机房托管等实行标准化操作,让客户可以直观的预知到从创新互联可以获得的服务效果。

禁用小部件

动态 UI 的最简单形式是使不可用的菜单项或按钮变灰的 UI。禁用 UI 小部件与禁用所有小部件的方法都是相同的。setEnabled() 函数是 Component 类的一个功能。清单 1 显示了禁用按钮的代码:

清单 1. 禁用按钮

 
 
 
  1. button.setEnabled(false);

正如您看到的,十分简单。关键问题是何时应该 启用或禁用一个按钮。通常的设计决策是当按钮不可用时禁用它。例如,当一个文件从上一次保存以来还没有被修改时,很多程序禁用 Save 按钮(以及任何相应的菜单项)。

关于禁用按钮的重要警告是要记住在适当的时候重新启用它们。例如,如果在单击按钮和按钮的动作完成之间有一个确认步骤,即使确认失败也应该重新启用按钮。

调整范围

有时,应用程序需要动态地调整数值小部件的范围,例如 Spinner 或者 Slider。这可能比它看起来要复杂许多。特别是 Slider 有二级功能 —— 刻度、刻度间隔和标签 —— 这些可能需要随着范围的调整而加以调整以避免灾难发生。

Swing Set示例没有进行任何一项调整,所以您需要通过把 ChangeListener 连接到一个可以修改其他滑块的滑块来修改它。输入新的 SliderChangeListener 类, 如清单 2 所示:

清单 2. 更改滑块的范围

 
 
 
  1. class SliderChangeListener implements ChangeListener {
  2. JSlider h;
  3. SliderChangeListener(JSlider h) {
  4. this.h = h;
  5. }
  6. public void stateChanged(ChangeEvent e) {
  7. JSlider js = (JSlider) e.getSource();
  8. int i = js.getValue();
  9. h.setMaximum(i);
  10. h.repaint();
  11. }
  12. }

这个看起来无意义的操作实际上有重大的作用。每当设置标签表时就生成滑块的标签。没有为了修改对表进行特殊回调,所以添加到表中的新值不必产生效果;很显然,空操作具有使 Swing 知道它必须更新显示的副作用。(以免您认为这是我自己发明的,请注意最初的 Swing Set示例代码包括这样一个调用。)

网站题目:浅析SwingSet示例
标题来源:http://www.shufengxianlan.com/qtweb/news49/134449.html

网站建设、网络推广公司-创新互联,是专注品牌与效果的网站制作,网络营销seo公司;服务项目有等

广告

声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联