Brunswick Geschrieben 23. November 2004 Geschrieben 23. November 2004 Wenn ich ne tabelle mit z.B. 5 Zeilen und Spalten habe, wie kann ich dann im Programm selber beispielsweise die Zellen mit den Koordinaten (Zeile2, Spalte 2), (Zeile2,Spalte3), (Zeile3/Spalte2), (Zeile3,Spalte3) selektieren? Blockweise würde reichen, sprich dass ich immer ein Rechteck selektiere aus der Tabelle, müssen also nicht unbedingt auch Selektionen gehen à la Zeile 1 Spalten 3-5, Zeile 2 nur Spalte 3, Zeile 3 Spalten 2-4. Hab schon zig Sachen versucht, aber irgendwie kann ich nirgendwo ein Intervall setzen, obwohl es wohl irgendwas wie Anchor gibt, daß als Ankerpunkt fungiert und wo man dann nur noch nen Intervalpunkt angeben muß, der den gegenüberliegenden Punkt im selektierten Rechteck darstellen würde. Aber leider weiß ich nicht, wo ich die beiden Punkte setzen kann. Zitieren
Brunswick Geschrieben 23. November 2004 Autor Geschrieben 23. November 2004 Hat sich erledigt. Wenn möglich, Thread bitte löschen Zitieren
Jaraz Geschrieben 23. November 2004 Geschrieben 23. November 2004 Hi, da du das Problem ausführlich beschrieben hast, wäre es schön wenn du die Lösung beschreibst. Vielleicht hilft es mal jemanden. Gruß Jaraz Zitieren
mkScheller Geschrieben 23. November 2004 Geschrieben 23. November 2004 hi, siehe titel - wie gehtn das? dass keine Zelle mehr markiert is? gruss Zitieren
Brunswick Geschrieben 23. November 2004 Autor Geschrieben 23. November 2004 Also wenn du eine Zelle selektiert hast, sollte das deselektieren funktionieren, wenn du folgendes aufrufst: tabelle.changeSelection(zeilenindex, spaltenindex, true, false) Allerdings muß die Tabelle hierzu sowohl zeilen als auch spaltenbasierte Selektionen zulassen, also beiden Parameter auch auf true setzen) Ich würds gerne beschreiben, allerdings habe ich das Problem, daß ich das Ganze recht einfach lösen konnte, weil ich alle Daten schon über eine Adapterklasse hatte: Ich habe über jene Klasse die Zwischenablage für copy/paste- Zwecke eingebunden. Da die fokussierte Zelle in der JTable anscheinend immer der aktuelle Ankerpunkt ist, brauchte ich somit aus meinen Daten bloß die gegenüberliegnde Zelle des Rechtecks zu ermitteln und dann hab ich folgende Zeile aufgerufen: tabelle.changeSelection(zeilenindex, spaltenindex, false, true) Damit selektiert er alle Zellen zwischen dem Ankerpunkt und der anhand der Indices angegebenen Zelle PS: Sehe gerade, du wolltest alle Zellen deselektieren, dazu müsstest du den Fokus (und somit den Ankerpunkt) also auf die 1.Zelle setzen und dann die letzte Zelle (also die gegenüberliegende) per Indices im Statement von oben angeben. Zitieren
mkScheller Geschrieben 30. November 2004 Geschrieben 30. November 2004 habe eine einfachere Variante gefunden: clearSelection(); eine Methode nämlich, danke dennoch für die hilfe, habe es vorher so geschafft aber nur über nen umweg Zitieren
Empfohlene Beiträge
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.