java - 如何指示表中的列是可排序的(UI 设计问题)?

标签 java swing jtable ui-design gui-design

在我正在处理的应用程序中,有表格数据(为了记录,它是一个使用 JTables 的 Java Swing 应用程序)。在某些情况下,可以通过单击列标题对数据进行排序。 我想知道什么是向用户指示给定列是否可排序的好方法?

我想到了以下可能性。

1) 在每个可排序列中放置一个图标,表示它是可排序的。我个人不喜欢这个选项。

2) 当鼠标悬停在标题上时,将鼠标光标更改为其他内容以指示它是可排序的。

3) 将鼠标悬停在列上时,在工具提示文本中添加注释,说明它是可排序的。

有没有人有任何其他建议?

更新:

我认为需要澄清一下。 我的问题是不是如何指示给定列当前已排序。这已经通过向上/向下排序三角形范式实现了。 在用户单击标题进行排序之前,我想向用户提供有关可以对哪些列进行排序的线索。

更新 2: 我想我应该解释为什么我不完全相信选项 #1。在我看来,如果要放置一个图标来指示哪些列可排序的,那么这将增加视觉困惑。在这种情况下,有时 UI 会在“鼠标悬停”时发生变化。恰当的例子:Windows Vista 和 7 允许在列上添加过滤器,但直到您将鼠标悬停在标题上时才会出现此指示器。

最佳答案

当您处理 UI 时,您必须考虑用户的期望。我几乎总是建议保持用户期望的范例。因此我会推荐选项 1) 的版本

RememberME's帖子描述了这是如何工作的——你仍然可以在列标题中使用箭头——一种选择是在标题中放置一个箭头图标,但如果它被排序则更改该图标的状态(例如,如果数据集当前按此列排序。)

编辑: Windows 资源管理器示例可能不是此处的最佳示例。下面引用我的原文:

In Windows Explorer and almost all form datagrids there is a small icon, usually an up or down arrow, that indicates that a column is sortable. Experiment with Windows Explorer to see the way in which this works.

关于java - 如何指示表中的列是可排序的(UI 设计问题)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2375373/

相关文章:

java - Glassfish 上 Maven Web 应用程序的 Heroku Procfile 是什么?

java - 如何在java中向面板添加滚动条,而不需要边框布局?

java - SwingMetawidget,值未绑定(bind)到 JComboBox

java - 在 JTable 单元格下显示弹出式 JFrame?

java - 如果我在 App Engine 上构建 Spring 应用程序,它会默认使用多线程还是可以配置为?

java - PySpark 是否调用 java api,然后 java api 调用 Apache Spark 中的 scala api?

UTF-8 的 Java Digester

java - 以编程方式滚动 JMapViewer map

java - 如何通过 JTable 中的 JComboBox 获取选定值

java - java swing中如何动态添加列并用数据填充新添加的列