it-swarm.com.de

Wählen Sie ein Element aus einer Liste aus, das einer anderen Liste hinzugefügt werden soll

Ich habe eine Anwendung implementiert mit Java Swing. Die Hauptansicht der Anwendungen ist in eine linke und eine rechte Seite unterteilt. Der obere Teil der rechten Seite enthält ein SearchField und eine Liste der Suchvorgänge Die Ergebnisse werden unter dem Feld angezeigt. Der Benutzer sucht mithilfe des Suchfelds nach Elementen, und der Benutzer wählt eines der Elemente in den Suchergebnissen aus hinzugefügt zur Liste auf der linken Seite Seite.

Stellen Sie sich dies als eine Anwendung vor, bei der der Benutzer eine Bestellung aus Artikeln "aufbaut", die durch Suchen gefunden werden.

+------------------------+-----------------------+
|                        |      SearchField      |
|                        +-----------------------+
|                        |                       |
|                        |                       |
|                        |                       |
|       List of          |      List of          |
|       added            |      matched          |
|       items            |      items            |
|                        |                       |
|                        |                       |
|                        |                       |
+------------------------+-----------------------+

Wie soll der Benutzer das Element in den Suchergebnissen auswählen und zur linken Liste hinzufügen? Standardmäßig werden in Java Swing, wenn ich eine JList oder JTable habe, die Elemente ausgewählt , wenn der Benutzer auf ein Element klickt Es war natürlich, wenn es für jedes Element einen "Hinzufügen" -Button gab, denke ich. Aber ich muss einige Umgehungen vornehmen, wenn es in Java Swing "so funktionieren soll." Hinzufügen "Ein Element durch Doppelklick würde funktionieren, aber es ist nicht so intuitiv. Wählen Sie ein Element aus und drücken Sie die Eingabetaste. Es ist auch nicht so intuitiv.

Wenn ich dies jedoch als Webanwendung implementiert hätte, wäre es natürlich gewesen, für jedes Element in der Liste der Suchergebnisse einen "Hinzufügen" -Link zu haben.

Wie soll ich dieses Usability-Problem lösen? Ist es am besten, für jedes Element eine Schaltfläche "Hinzufügen" zu haben, oder gibt es eine intuitivere Lösung? Ich habe das Gefühl, dass die Benutzeroberfläche "chaotisch" aussieht, wenn jedes Element eine Standardschaltfläche hat. Ich denke, ich muss eine diskretere benutzerdefinierte Schaltfläche verwenden, wenn eine Schaltfläche die Lösung ist.

2
Jonas

Ich habe mehrere dieser Arten von Schnittstellen gebaut. Ich schlage vor, wie Sie bereits erwähnt haben, für jedes Element eine Schaltfläche zum Hinzufügen und eine Schaltfläche zum Entfernen aus der Liste der hinzugefügten Elemente zu verwenden.

Eine andere Option, mit der ich erfolgreich war, besteht darin, Knöpfe zwischen den beiden Feldern mit Pfeilen zu haben, die die Bewegungsrichtung anzeigen. Von rechts nach links <- ist Hinzufügen und von links nach rechts -> ist Entfernen.

1
Jeremy

Ich bin damit einverstanden, dass ein Doppelklick nicht erkennbar ist. Sie haben erwähnt, dass durch Klicken auf ein Element dieses ausgewählt wird. Warum platzieren Sie nicht eine große Schaltfläche "HINZUFÜGEN" unten im rechten Bereich, die auf alle ausgewählten Elemente wirkt? Es kann deaktiviert werden, wenn keine Auswahl vorhanden ist, und aktiviert werden, sobald ein Element ausgewählt wurde. Das Drücken der Eingabetaste kann eine Tastenkombination für die Schaltfläche sein.

Auf der linken Seite kann sich eine "Entfernen" -Taste befinden, die auf die gleiche Weise funktioniert und mit der ADD-Taste in einer Ebene liegt.

Übrigens, es sei denn, diese Schnittstelle ist für eine RTL-Sprache, scheint mir die Richtung des Arbeitsprozesses umgekehrt zu sein - die Quelle befindet sich normalerweise links und das Ziel rechts.

Ich weiß auch nicht, wie Sie damit umgehen, aber nur für den Fall - meiner Meinung nach sollten hinzugefügte Elemente nicht aus dem Quellfenster verschwinden (sie sind immer noch die Suchergebnisse, sie gehen nirgendwo hin ), aber es sollte eine visuelle Anzeige geben, dass sie hinzugefügt wurden.

1

Ich stimme Vitaly zu, ein Hinzufügen und Entfernen von Schaltflächen ist für diese Art von Aufgabe selbstverständlich. Wenn Sie dem Benutzer mehr Optionen geben möchten, aktivieren Sie Drag & Drop aus dem Suchfeld in die Zielliste. Aktivieren Sie auch die Bearbeitung über Schlüssel, kehren Sie in die Suchliste zurück, fügen Sie hinzu, löschen Sie in der erstellten Liste, um das Element zu entfernen.

Im Gegensatz zum Entfernen von Elementen aus der Liste, in der die Suchergebnisse angezeigt werden, besteht eine bessere Lösung darin, sie auf diese Weise zu markieren (zu deaktivieren), wenn ein Benutzer eine Suche ausführt, die Elemente enthält, die bereits zur Liste hinzugefügt wurden. Das Ergebnis ist dasselbe Nach wie vor sind jedoch die bereits ausgewählten Elemente sichtbar. Andernfalls würden zwei Suchvorgänge zwei unterschiedliche Ergebnisse anzeigen, die einige Benutzer ablenken könnten.

1

Sie können sogar ein Kontrollkästchen für jedes der Elemente in beiden Listenfeldern hinzufügen. Und stellen Sie zwei Schaltflächen bereit: Hinzufügen (Verschiebt in die ausgewählte Liste) und Entfernen (Verschiebt in die nicht ausgewählte Liste). Auf diese Weise können Sie mehrere Elemente gleichzeitig aus einer der beiden Listen auswählen und einfach verschieben. Sie können dies tun, indem Sie ein Datagrid verwenden und es so gestalten, dass es wie eine Liste aussieht, wenn Sie möchten. Hoffe das hilft.

0
Divi

Übrigens habe ich eine Alternative entwickelt, die eine Listbox anzeigt, die nur die ausgewählten Elemente enthält, und dann eine Schaltfläche zur Seite oder eine Möglichkeit hat, in einen kleinen Dialog zu gelangen, der einer Dropbox für Kombinationsfelder ähnelt. In der Dropdown-Liste finden Sie dann eine Liste mit Optionen sowie Kontrollkästchen daneben sowie ein Filtertextfeld oben. Dieses Muster hat sich bisher für mich bewährt und verschiebt die Listenänderung auf eine andere Oberfläche, während eine einfache Ansicht der ausgewählten Optionen nur auf der Hauptoberfläche angezeigt wird.

Dies funktioniert am besten in Fällen, in denen Sie mehrere Steuerelemente dieser Art in einer einzelnen Benutzeroberfläche haben müssen oder wenn Sie dieses Steuerelement in Verbindung mit anderen komplexen Steuerelementen auf einer einzelnen Oberfläche verwenden müssen. Wenn Ihr Beispiel darin besteht, den Selektor in einem eigenen Dialogfeld zu kapseln, ist es wahrscheinlich einfacher, das traditionellere duale Listen Konzept zu verwenden.

0
jpierson