2016-07-17 5 views
1

: Ich bin hier zu schwingen und brauchtAuswahl nur eine Spalte für mehrreihige Auswahl JTable

Ich habe 3 Spalten in einer JTable Spalte 1 Daten JText mit Symbol Spalte 2 ist JComboBox Spalte 3 ist helfen JButton

Ich möchte Funktionalität, wo nur Spalte 1 mehrzeilige Auswahl zulässig sein sollte. Wenn ich Spalte 1 mehrfach auswähle und dann auf eines der JButtons (Spalte 3) klicke, sollte ich in der Lage sein, die ausgewählten Zeilen zu erhalten. Das Problem ist, dass ich die Auswahl verliere, sobald ich auf die JButton klicke.

Antwort

3

Das Problem ist, ich verliere die Auswahl, sobald ich auf den JButton klicke.

Ja, dies ist ein Standard-UI-Design für alle Anwendungen. Wenn Sie auf eine Zeile klicken, ändern Sie die Auswahl. Die Lösung besteht also darin, Ihre Benutzeroberfläche zu ändern.

Ihre Tabelle sollte nur zwei Spalten und NICHT die Schaltfläche enthalten. Dann haben Sie zwei Möglichkeiten:

  1. Fügen Sie JButton woanders auf dem Panel hinzu. Wenn Sie dann auf die Schaltfläche klicken, wird die Funktionalität für die ausgewählten Zeilen aufgerufen. Zum Beispiel die Lösung hier: How to read the file, put data in JTable, then modify cell/delete lines and save data to the file?

  2. Die Option besteht darin, ein Popup-Menü zu der Tabelle hinzuzufügen, so dass beim Klicken mit der rechten Maustaste auf die Tabelle das Menü mit Optionen für die ausgewählten Zeilen angezeigt wird. Sehen Sie sich den Abschnitt aus dem Swing-Lernprogramm an. Bringing Up a Popup Menu für ein praktisches Beispiel, um Ihnen den Einstieg zu erleichtern.

+0

Danke für die Eingaben. Ich werde über sie gehen. Leider kann ich diesen Entwurf nicht ändern und ich muss mit der 3 Spaltentabelle gehen und irgendwie dieses arbeiten lassen. Option 2 klingt näher nach Hause, aber es gibt eine Möglichkeit, die Auswahl beizubehalten, während ich einen Dialog auf Knopf 3 der Spalte führe, der mir die ausgewählten Zeilen gibt – user3711096

+0

* "Leider kann ich dieses Design nicht ändern .." * Meine Mitgefühl. Ich kann nicht speziell für @camickr sprechen, denke aber nicht, dass viele erfahrene Programmierer bereit sind, dabei zu helfen. –

+1

@ user3711096, 'gibt es einen Weg, ich kann die Auswahl behalten, während Sie einen Dialog auf Spalte 3 Knopf Klick t '- schreiben Sie die UI der Tabelle. Der MouseListener, der der Tabelle hinzugefügt wird, ist für die Bearbeitung der Auswahl bei gedrückter Maustaste verantwortlich, sodass Sie den Standardhandler durch Ihren eigenen ersetzen müssen. – camickr