Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/351.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/logging/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 设计GUI的最佳技巧?_Java_User Interface_Swing - Fatal编程技术网

Java 设计GUI的最佳技巧?

Java 设计GUI的最佳技巧?,java,user-interface,swing,Java,User Interface,Swing,不久前,我读了一本很棒的书(在我丢失它之前),书中有很多例子,但也有很多有用的花絮,比如前一分钟不要调用某个对话框,后一分钟弹出弹出窗口 在设计/记录GUI时,您会给出哪些最佳提示?如果能听到您设计的小部件将可读信息塞进尽可能少的屏幕空间,那将特别有用 我将用我自己的一个例子来说明这一点:避免树(例如Swing的JTree),除非你真的无法避免它,或者有一个无限的层次结构。我发现用户并不觉得它们直观,而且很难导航和过滤 注:我认为这个问题不同于我要求的通才技巧,我个人遵循以下简单规则: 在整个

不久前,我读了一本很棒的书(在我丢失它之前),书中有很多例子,但也有很多有用的花絮,比如前一分钟不要调用某个
对话框,后一分钟弹出
弹出窗口

在设计/记录GUI时,您会给出哪些最佳提示?如果能听到您设计的小部件将可读信息塞进尽可能少的屏幕空间,那将特别有用

我将用我自己的一个例子来说明这一点:避免树(例如Swing的
JTree
),除非你真的无法避免它,或者有一个无限的层次结构。我发现用户并不觉得它们直观,而且很难导航和过滤


注:我认为这个问题不同于我要求的通才技巧,我个人遵循以下简单规则:

  • 在整个应用程序中保持一致不要改变行为/布局
  • 信息流:从上到下从左到右(在西方国家)
  • 页面上没有太多信息(如ppt演示文稿)
  • 大字(这样老年人也能读)
  • KISS(任何可以使用录像机的人都可以使用此页面/表格/等等)
  • 使用放松的颜色,如蓝色、绿色等(不要大红或霓虹粉)
  • 结构(当然可以更改,但作为初稿,主要是):
    • 顶部->导航/菜单
    • 左->导航/信息
    • 中间->内容
    • 底部->状态
    • 右下->按钮

我认为,在这个小小的空间里,不可能给出设计好的GUI的技巧(问题大到“如何编写好的程序?”)。但我可以给一些有用的书指点一下:

    • 我最重要的建议是 从GUI开发人员的角度来看

      保持精简 如果你是说从可用性的角度来看


      完成设计后,尽快向实际用户展示,并根据反馈进行优化:让几个人坐在您的软件前,让他们尝试解决您的软件设计任务(一个接一个,而不是一次解决所有任务…)。仅仅通过观看你就能学到的东西真是太神奇了


      如果可能,测试人员应与典型客户群的配置文件相匹配。在这种可用性测试中,你能找到越多的人就越好,但在过去,即使每次产品迭代只观察少数人,对我来说也是非常有用的

      要解决您在JTree上的问题(我同意),如果您想在应用程序中实现良好的JList和JTable交互,您应该考虑使用glassed list:

      通过对代码进行一些调整,您可以获得许多功能(例如,可排序的表格标题)


      除此之外,保持简单

      不要更改默认颜色。这对于色盲的人来说很重要,我曾经从一位熟练的GUI技术负责人那里得到过一个非常具体的提示:

      当您有一个带有按钮、文本字段、列表等的对话框/表单时,请尽量保持它们之间的空间一致且对称。例如,尝试在各个方向的小部件之间使用相同的距离,如果通过增加组之间的空间将一组小部件与另一组小部件分开,则尝试使该空间与组内控件之间的空间重复。例如,如果一个部分中的所有按钮在所有方向上都被16个像素隔开,请尝试为下一组32、64、128像素留出较大的空间

      对于人眼来说,解释与明显对称性有关的事物要舒服得多

      自从我试过以后,我总是用这种方法,效果很好。我甚至回去重新设计了旧的GUI,并惊讶地看到仅此调整就带来了如此大的改头换面

      编辑:

      忘了提到我从上述方法中学到的一个重要教训:

      当您按照这个系统排列所有小部件时(特别是在重新处理旧的杂乱GUI时),您可能会耗尽空间,并且您的对话框需要膨胀。在某些情况下,您可能会感觉到对话框变得太大(例如,阻止相关的后台GUI或相关的小部件彼此距离太远)。 这可能是一个很好的指示,您可能应该将对话框拆分为选项卡,将内容移动到菜单中,或者将其转换为向导式的概念,等等


      这与widget间距无关,但涉及到用户在任何给定时间都可以与之交互的“少即是多”主题。有趣的是,当你开始做正确的事情时,它会“激起涟漪”,有时会迫使你做更多正确的事情(有点像修正常数正确性:p)。

      使用尽可能少的UI

      我想我们忘记了计算机是信息机器,也就是说,它们是为我们工作的

      在iPhone上见过Shazam吗?它几乎只有一个按钮。你按下它,将手机举到正在播放歌曲的扬声器前,大约10秒钟后它就会告诉你正在播放什么歌曲


      非常有用,几乎没有用户界面。所有的艰苦工作都在下面进行。

      请记住,用户的目标不是使用您的程序。他们的目标是别的,而你的程序只是帮助他们实现目标的工具。尽你所能让他们成功和快乐。

      乔尔·斯波尔斯基。
      你可以在一个下午内阅读。

      我不确定我是否同意你的观点。有很多提示可以帮助你。对话框/弹出窗口的建议让我看到了我从未想到的设计方面。提示越多越好除非你的目标平台上没有管理字体大小的系统设施,否则我不鼓励在没有充分理由的情况下使用“大写字母”。我不同意“页面上的信息不要太多(如ppt演示文稿)”:当你有很多