Du verwendest einen veralteten Browser. Es ist möglich, dass diese oder andere Websites nicht korrekt angezeigt werden. Du solltest ein Upgrade durchführen oder ein alternativer Browser verwenden.
ich habe mir jetzt damit beholfen, daß ich dem parentComposite kein Layout zuordne
und bei den Tabellen jeweils mit setSize die Größe festlege.
Jetzt funktioniert das ganze mit dem Scrollen wunderbar, leider passen sich die Tabellen
jetzt natürlich nichtmehr an das Fenster an, wenn dieses z.B. vergrößert wird. :roll:
Du könntest direkt nen TableViewer verwenden. Dann passt er die Tabelle automatisch an und bei Bedarf gibts auch automatisch ne Scrollbar. Ausserdem kommt das MVC Konzept gleich freihaus mit durch die ContentProvider und LabelProvider.
danke für den Tip, werde ich gleich mal ausprobieren
Weißt Du zufällig auch, wie ich ein Tandem-scrollen hinbekomme ?
Also daß wenn ich in der einen Tabelle nach unten Scrolle, die andere Tabelle ebenfalls
scrollt (beide Tabellen haben exakt gleich viele TableItems) ?
Die Position der vertikalen Scrollbar habe ich herausgefunden, aber leider gibt es bei Tabellen
kein setOrigin(int pos) wie bei ScrolledComposites..
Eine Möglichkeit wäre die Tabellen jeweils in ein ScrolledComposite zu setzen und den Tabellen selbst
das Scrollen zu verbieten. Die Lösung finde ich aber ehrlich gesagt nicht sehr elegant..
Habe das bisher nur mit Canvas Widgets gemacht, da gibts ne scroll() Methode (sowas wie setOrigin()). Offenbar gibts das bei nem Table echt nicht. Insofern würde ich das ganze wohl mit ScrolledComposite machen. Um einen eigenen Resize-Listener wirst Du ja eh nicht drum herum kommen, wenn Du dieses Tandem Scrolling umsetzen willst.
Hier gibts einen guten Snippet, der manuelles Scrolling beschreibt. Da gehts allerdings um flimmerfreies Scrolling von Canvas Widgets, also musst Du das erstmal auf Dein Problem portieren.
Tabellen sind echt etwas komisches, vor allem wenn man den Editor benutzt.
Ich erzeuge in einer Schleife mehrere TableItems:
Code:
TableItem ti = new TableItem(restable, SWT.NONE);
ti.setText(0, "Der Text");
funktioniert wunderbar, solange der text nicht breiter als die Spalte ist.
Der Tooltiptext bricht den text leider auch nicht um, wenn er breiter als der Bildschirm wird..
Habe daher versucht mir wie folgt zu behelfen:
Code:
TableItem ti = new TableItem(restable, SWT.NONE);
Label label.setText(b.getBookSubject().trim());
label.setToolTipText("ganz furchtbar laaaanger text");
TableEditor editor = new TableEditor (restable);
editor.grabHorizontal = true;
editor.grabVertical = true;
editor.setEditor(label, ti, 0);
Bei nur einem item in der tabelle funktioniert es.
Wenn es aber mehrere Items sind, dann ist der Text, welchen ich via Label in die tabelle setze
um eine Zeile nach unten versetzt, d.h. das Label wird in der falschen Zeile (eins tiefer)
eingetragen. Die andern Spalten der tableItems sind aber korrekt eingetragen (keine Label, normaler Text).
Das ist echt STRANGE ! :shock:
auch ein editor.setEditor(label, restable.getItem(restable.getItemCount()-1), 0); hat da nicht geholfen.. :bahnhof: