JTable Zeilen und Spalten selektieren

Jochen Schreiber

Grünschnabel
Hallo an alle,

ich habe folgendes vor: Der Benutzer soll die Möglichkeit bekommen einfach Zellen per Ziehen zu markieren (klappt schon) und zusätzlich soll er Spalten und Zeilen anklicken können die dann ganz markiert werden. Mit meiner aktuellen Version ist es so das wenn ich 2 Zeilen markieren geht das auch wenn ich jedoch zusätzlich eine Spalte markiere ist die ganze Tabelle markiert.

Wie mache ich das? Habe schon rausgefunden das ich ein eigenes ListSelektionModel brauchen was auch kein Problem ist denke ich. Aber ich denke so ein Problem gab es bestimmt schon mal und leider habe ich auch keine Idee grade wie ich das mit dem ListSelektionModel am besten löse.

Habt ihr ne Idee oder einen Tipp für mich?

Hier ist meine Tabellendefiniton für das Selektieren:

Code:
this.setCellSelectionEnabled(true);
		this.setColumnSelectionAllowed(true);
		this.setRowSelectionAllowed(true);
		ListSelectionModel m = this.getSelectionModel();
		m.addListSelectionListener(new SelectionListener());
		this.setSelectionModel(m);
		this.setSelectionMode(m.MULTIPLE_INTERVAL_SELECTION);

Da steht bestimmt noch viel unnötiges drin. Sorry dafür aber habe viel rumprobiert.

Viele Grüße

bladepit
 
Hi und Willkommen bei Tutorials.de,

also wenn ich dein Problem richtig verstanden habe, dann willst du, dass deine Tabelle multiselektiebel sein soll. Die Zeilen sollen via Mausziehen markiert werden und durch einen Klick auf eine andere Zeile, soll diese ebenfalls markiert werden.
Hast du es schon mal probiert nach dem markieren mit dem Mauszeiger die anderen Zeilen einfach mit gedrückter STRG+linke Maustaste zu markieren?

Gruß

Fabio
 
Hallo,

also das sollte ich natürlich dabei schreiben..:) Sorry.

Über das Klicken auf die Zeilenbeschriftung (ne andere Tabelle) soll die Zeile markiert werden.
Über das Klicken auf die Spaltenbeschriftung soll die Spalte markiert werden.
Und das Ziehen und markieren über die Zellen soll so bleiben wie es auch ist. Sprich der Benutzer kann Bereiche markieren.

So ist meine Wunschvorstellung und mein oben genanntes Problem tritt auf wenn ich beim Klick auf die Spalte oder Zeile addRowSelectionInterval oder halt ColumnInterval mache.

Was kann ich da machen?

Gruß

Jochen
 

Neue Beiträge

Zurück