2014-01-28 40 views
0

我有一個Java Swing程序,我想以更好的方式設計一個對話框。程序中的一個窗口中有一個按鈕,用戶需要點擊該按鈕打開一個小對話框來選擇幾個客戶的名字,然後保存他的選擇,然後在主窗口中對該選擇進行一些操作。Java - 對話框設計頭腦風暴

問題在於設計這個小對話框。用戶可以在其中執行2個操作:

  1. 啓用客戶想要使用的名稱。
  2. 選擇一個客戶名稱來編輯或從數據庫中刪除它。

這裏是初始對話設計:

------------------------------>enter image description here

我最初的想法來完成這個工作:

  1. 要啓用的名稱在主窗口的用戶使用它剔其選擇框(即名稱3)。
  2. 要編輯或刪除名稱用戶必須突出顯示名稱本身的標籤,然後單擊編輯按鈕。因此突出顯示名稱不會勾選(啓用)它(即名稱2)。

我的2個問題是:

  1. 將用戶熟悉這種行爲(他可以做每個項目兩個動作)。
  2. 在Java Swing中,我應該使用(JCheckBox + JLabel)項目的JList來實現這一點,還是使用JTable?
+0

對於問題一,爲什麼不只是有一些不熟悉編程的朋友測試一下並獲得一些意見。對於第二個問題,列表似乎是合適的。沒有一點在表格中只有一列。 –

+0

@peeskillet ...問題1:我已經這樣做了,這對他們來說是一個令人困惑的事情......問題2:檢查JCheckBox列表項是否啓用/禁用或突出顯示是複雜的。當我突出顯示一個項目時,它會自動啓用它,這不是我想要的。 – Brad

+0

也許使用'CardLayout'。 CardLayout中的每個'JPanel'都有一個不同的列表。每個清單將用於不同的目的。初始列表中,您禁用它。它可以通過僅查看列表。當使用點擊編輯按鈕時,它會將面板切換到用戶可以編輯的列表。所有列表都共享相同的模型。這對你有意義嗎? –

回答

0

在我看來,最簡單的方法就是在每個名字的旁邊放置你想要做的動作。 爲了更清楚起見,這裏是一張來自phpmyadmin軟件的圖片(見下文)。

你可以做一些像圖片的「動作」欄! 這是非常直觀,非常適合您的好需要(phpmyadmin的幫助管理數據庫,這是接近你在做什麼)

phpMyAdmin (http://www.pc6.com/up/2011-6/201163162941.jpg)

+0

http://stackoverflow.com/questions/19766/how-do-i-make-a-list-with-checkboxes-in-java-swing,這應該是有趣的做到這一點。 – Hichamov

+0

謝謝,但您是否認爲這對用戶不利? – Brad

+0

我認爲它非常直觀,這在很多現有的軟件,特別是數據庫管理系統(這是非常接近你在做什麼)中使用。你也可以使用按鈕(筆形狀和齒輪形狀),並避免複選框 – Hichamov

0

也許你可以分割清單?

+---------------------------------------------------+ 
| Available users   Selected users  | 
| +------------------+  +------------------+ | 
| | Name 1   |  | Name 3   | | 
| | Name 2   | [>] |     | | 
| |     | [<] |     | | 
| |     |  |     | | 
| +------------------+  +------------------+ | 
| [Add]   [Edit] [Delete]     | 
+---------------------------------------------------+ 
| [Import][Export]     [OK] [Cancel] | 
+---------------------------------------------------+ 
  • 按鈕><用於列表之間移動的用戶。
  • 多選左邊和右邊允許一次添加/刪除多個用戶。
  • 雙擊也應該移動一個條目。
  • 只允許左右邊的列表選擇(選擇離開自動刪除選擇權)
    這將允許使用編輯/刪除按鈕兩者。
    僅當選擇了一個項目時才啓用按鈕。
  • 添加按鈕將在左側列表中的用戶和事後
  • OK自動選擇它時,使用至少一個用戶時,纔會啓用。