【发布时间】:2014-01-28 06:56:20
【问题描述】:
我有一个带有对话框的 Java Swing 程序,我想以更好的方式设计它。程序中的一个窗口有一个按钮,用户需要单击该按钮以打开一个小对话框以选择几个客户名称,然后保存他的选择,然后我在主窗口中对该选择执行一些操作。
问题在于设计那个小对话框。用户可以在其中执行 2 个操作:
- 启用他想要使用的客户名称。
- 选择客户名称以对其进行编辑或从数据库中删除。
这是最初的对话框设计:
------------------>
我最初的想法是:
- 要使名称能够在主窗口中使用,用户必须勾选其选择框(即名称 3)。
- 要编辑或删除名称,用户必须突出显示名称本身的标签,然后单击“编辑”按钮。因此,突出显示名称不会勾选(启用)它(即名称 2)。
我的 2 个问题是:
- 用户是否熟悉这种行为(他可以对每个列表项执行两个操作)。
- 在 Java Swing 中,我应该使用 (JCheckBox + JLabel) 项的 JList 来完成此操作,还是使用 JTable?
【问题讨论】:
-
第一个问题,你为什么不让一些不熟悉编程的朋友测试一下,得到一些意见。对于第二个问题,一个列表似乎很合适。表格中只有一列没有意义。
-
@peeskillet ... 问题 1:我已经这样做了,这对他们来说是一件令人困惑的事情 :) ... 问题 2:检查 JCheckBox 列表项是否启用/禁用或突出显示很复杂。当我突出显示一个项目时,它会自动启用它,这不是我想要的。
-
也许使用
CardLayout。CardLayout中的每个JPanel都有一个不同的列表。每个列表将用于不同的目的。初始列表,您禁用它。它可以仅通过查看列表。当用户单击编辑按钮时,它会将面板切换到用户可以编辑的列表。让所有列表共享相同的模型。这对你有意义吗? -
我会担心混合责任。允许用户选择一系列用户或管理他们。在这一点上,上下文很重要。这并不是说您不能重复使用相同的 UI 并根据该上下文提供不同的操作
-
JList&JTable方法被检查here。