2010-03-03 62 views
2

在我正在處理的應用程序中,有表格數據(用於記錄,它是使用JTables的Java Swing應用程序)。在某些情況下,通過單擊列標題可以對數據進行排序。 我想知道的是,如果給定的列可排序或不可排序,那麼向用戶指出什麼是一種好方法?如何指示表格中的列是可排序的(UI設計問題)?

我已經想出了以下可能性。

1)在每個可排序的列中放置一個圖標,表示它是可排序的。我個人不喜歡這個選項。

2)將鼠標光標懸停在標題上以指示它可排序時,將鼠標光標更改爲其他內容。

3)當鼠標懸停在列上時,在工具提示文本中放置一個註釋,說明它是可排序的。

有沒有人有任何其他建議?

更新:

我認爲澄清是有序的。 我的問題是不是如何表明一個給定的列是目前排序。這已經通過上/下排序三角形範例實現了。 我想給用戶線索可以排序之前,他們點擊標題進行排序。

更新2: 我想我應該解釋爲什麼我沒有完全賣掉選項#1。在我看來,如果一個人打算放一個圖標來指示哪些列是可排序的,那麼這會增加視覺混亂。在這種情況下,UI有時會在「鼠標懸停」上發生變化。例子:Windows Vista和7允許在列上添加一個過濾器,但是隻有使用鼠標懸停在標題上時,纔會出現指示器。

+0

是對更新2的迴應,您不能在鼠標懸停時做選項1嗎?這似乎是一個合理的事情,儘管它仍然不是非常好,因爲用戶不得不意外地鼠標滑過才能找到它。 – Chris 2010-03-05 21:24:44

回答

5

當您處理用戶界面時,您必須將自己的想法放入用戶期望的範圍內。我幾乎總是建議留下你的用戶期望的範例。因此,我會推薦一個版本的選項1)

RememberME's後描述這是如何工作的 - 你仍然可以在列標題中使用箭頭 - 一種選擇是在標題中放置一個箭頭圖標,但改變狀態圖標,如果它被排序(例如突出顯示向上或向下按鈕,如果數據集當前由該列排序。)

Pictoral實例: alt text http://iosoft.in/pms/images/populometric/applicationimages/sortableColumnHeadings.png

編輯: Windows資源管理器例如可以不是這裏最好的例子。我的原文引用如下:

在Windows資源管理器中,幾乎所有的 形式DataGrid中有一個小圖標, 通常是向上或向下的箭頭,這 指示列排序。 試用Windows資源管理器至 查看其工作方式。

+0

請參閱我的說明。 Windows資源管理器只在當前排序的列中放置一個圖標。與我的應用程序不同,Windows資源管理器中的**每個列都是可排序的。 – Avrom 2010-03-03 22:35:53

+1

@Avrom - 您仍然可以在列標題中使用箭頭 - 一種選擇是在標題中放置一個箭頭圖標,但如果已排序,則更改該圖標的狀態(例如,如果您當前正在對其進行排序,則突出顯示向上或向下按鈕通過這個),就像在RememberMe的文章 – CrimsonX 2010-03-03 22:44:09

+0

雖然他沒有明確提到它,我相信張貼的截圖是一個很好的方式來做到這一點。 – Chris 2010-03-03 22:45:59

0

我認爲標準方式本質上是選項1:或者顯示最初用一個向上或向下(升/降)指向的小箭頭排序的數據,或者一旦列標題被點擊就排序+顯示圖標。

2

在許多應用程序中,三角形表示可排序,所以我認爲這是將信息傳達給用戶的最佳方式,這是他們最熟悉的標準。

我認爲從DataTables.Net的jquery插件就是一個很好的例子。你可以看一看,看看你是否喜歡它的外觀/功能並模仿它。向上和向下都表示可排序。只是一個或另一個表明它正在排序。如果他們的列不可排序,那麼根本就沒有圖標。他們的例子還將指針從箭頭改變爲手形指針,以表明您可以單擊標題。

http://i48.tinypic.com/vp9k3k.jpg

0

我認爲有列標題,您可以點擊通過該列進行排序下面一個小箭頭或三角形圖標是最好的選擇,因爲它很容易看到在視覺和使用起來非常直觀。

0

小小的三角形上/下排序圖標對於桌面應用程序和網頁中的可排序表視圖來說非常標準。你可能不喜歡它們,但你的用戶可能習慣了他們(即使他們沒有意識到)。

您當然應該將鼠標光標更改爲可點擊的元素。

0

對於任何可點擊的事件,您應該始終做2。

數字1並不差,通常是指向上或向下的三角形,具體取決於排序順序。

爲了表示可點擊性,您還可以在可排序列上使用帶下劃線的藍色文本,在不可拆分列上使用純黑灰色文本 - 對於幾乎所有用戶而言,http鏈接外觀都是衆所周知的設備,但不能表達可排序性,本身。相反,用戶可能希望點擊該按鈕,將它們帶到其他屏幕或列表中,正如超鏈接通常所做的那樣。

+0

我很好奇爲什麼你和其他人建議改變光標。對我來說,這似乎是一種過時的技術,我想不出任何我最近看到的使用它的情況。 – Chris 2010-03-03 22:17:43

+0

我已經使用v和^圖標來指示哪個列當前已排序(主排序)。這是一個不同的概念,而不是可以排序的列。 – Avrom 2010-03-03 22:23:42

+0

Chris,鼠標光標在此頁面的可點擊元素上發生變化。 Avrom,請參閱我對可分類與排序的插入/三角形的迴應。 – RememberME 2010-03-03 22:35:08

-1

我可能有點緊張,但是什麼樣的列是而不是可排序?

幾乎所有的東西都可以排序;即使沒有嚴格的「大於」關係,至少會有一個「平等」,然後排序只是意味着「把平等的東西放在一起」。

字符串?嘗試按字母順序排列。圖片?按紅色,綠色和藍色的百分比排序(或者如果您想要看起來比較顏色直方圖)。地點?使用到羅馬或任何其他任意位置的距離。

在某些列上排序可能比在其他列上排序更有用;但我很難找到一個列類型,它是重要的避免排序發生。

+0

*可以*排序與「處理一個已經實現的應用程序有幾十個表,其中一些列可以排序,有些不可以,只是改變它並不是一個選項」之間有區別。 – Avrom 2010-03-22 13:44:21

+0

我只是指出你有第四種選擇:實現一個小型通用的基於等式的分類器,並將它用於當前所有不可用的「不實現Comparable」列。這樣,用戶在點擊列標題時就能得到他們期望的結果。 這需要的代碼量與您將需要添加以實現選項1. + 2所需的代碼量相當,並且在我看來,最終結果更加用戶友好。但是,嘿,你的派對。 – tucuxi 2010-03-22 15:07:29