Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/395.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-对话设计头脑风暴_Java_Swing_Jlist - Fatal编程技术网

Java-对话设计头脑风暴

Java-对话设计头脑风暴,java,swing,jlist,Java,Swing,Jlist,我有一个带有对话框的Java Swing程序,我想以更好的方式设计它。程序中的一个窗口有一个按钮,用户需要单击该按钮打开一个小对话框,选择几个客户名称,然后保存他的选择,然后我在主窗口中对该选择执行一些操作 问题在于设计这个小对话框。用户可以在其中执行两个操作: 启用他要使用的客户名称 选择要编辑或从数据库中删除的客户名称 以下是初始对话框设计: ------------------------------> 我实现这一目标的最初想法是: 要使名称在主窗口中使用,用户必须勾选其选择框(即名称3)

我有一个带有对话框的Java Swing程序,我想以更好的方式设计它。程序中的一个窗口有一个按钮,用户需要单击该按钮打开一个小对话框,选择几个客户名称,然后保存他的选择,然后我在主窗口中对该选择执行一些操作

问题在于设计这个小对话框。用户可以在其中执行两个操作:

  • 启用他要使用的客户名称
  • 选择要编辑或从数据库中删除的客户名称
  • 以下是初始对话框设计:

    ------------------------------>

    我实现这一目标的最初想法是:

  • 要使名称在主窗口中使用,用户必须勾选其选择框(即名称3)
  • 要编辑或删除名称,用户必须突出显示名称本身的标签,然后单击编辑按钮。因此,突出显示名称不会勾选(启用)它(即名称2)
  • 我的两个问题是:

  • 用户是否熟悉此行为(他可以对每个列表项执行两个操作)
  • 在JavaSwing中,我应该使用(JCheckBox+JLabel)项的JList来完成这个任务,还是使用JTable

  • 在我看来,最简单的方法就是在每个名字的旁边放上你想做的动作。 更清楚地说,这里有一张从phpmyadmin软件拍摄的照片(见下文)

    你可以做一些像“行动”栏的图片! 它非常直观,非常适合您的需要(phpmyadmin有助于管理数据库,而且它与您正在做的工作非常接近)


    也许你可以拆分列表

    +---------------------------------------------------+
    |  Available users            Selected users        |
    |  +------------------+       +------------------+  |
    |  | Name 1           |       | Name 3           |  |
    |  | Name 2           |  [>]  |                  |  |
    |  |                  |  [<]  |                  |  |
    |  |                  |       |                  |  |
    |  +------------------+       +------------------+  |
    |  [Add]           [Edit] [Delete]                  |
    +---------------------------------------------------+
    |  [Import][Export]                  [OK] [Cancel]  |
    +---------------------------------------------------+
    
    +---------------------------------------------------+
    |可用用户选定的用户|
    |  +------------------+       +------------------+  |
    ||名称1 | |名称3 ||
    ||名称2 |[>]|||
    
    | | | [对于第一个问题,你为什么不让一些不熟悉编程的朋友来测试一下,听听他们的意见。对于第二个问题,一个列表似乎是合适的。表格中没有一个点只包含一列。@peeskillet…问题1:我已经做了,这对他们来说是一件令人困惑的事情:)…问题2:检查JCheckBoxt项被启用/禁用或突出显示是复杂的。当我突出显示一个项时,它会自动启用它,这不是我想要的。可能使用
    CardLayout
    。在
    CardLayout
    中为每个
    JPanel
    都有一个不同的列表。每个列表将用于不同的目的。初始列表,您可以禁用它。只需仅查看列表。当用户单击“编辑”按钮时,它会将面板切换到用户可以编辑的列表。让所有列表共享同一个模型。这对您有意义吗?我关心的是混合责任。允许用户选择一系列用户或对其进行管理。此时上下文非常重要。I这并不是说你不能重复使用同一个用户界面并根据上下文提供不同的操作,尽管
    JList
    &
    JTable
    方法已经被研究过了。这应该是很有趣的。谢谢,但是你不认为这对用户来说不是很友好吗?我认为这很直观,这在很多exi中都有使用sting软件,尤其是数据库管理系统(与您正在做的非常接近)。您还可以使用按钮(笔形和齿轮形)并避免复选框。做一些模型并听取朋友的建议是一个相当好的主意(你向他们展示并询问他们对它的理解,而不向他们解释任何事情)。一种简单、自由、快速的制作实体模型的方法:(以防你从未听说过它!希望我能帮助其他选择:(它是phpmyadmin)试着做一些像图片中的“动作”专栏一样的事情;)