Moin Leute
Ich möchte etwas Scrollbarkeit in eine Tabelle einbauen. Ein echtes ScrollPane kann ich leider nicht benutzen. So sieht die Tabelle aus:

Das Ganze wird mit Hilfe einer GridPane gebildet - in (0, 0) sitzt der bunte Inhalt, in (1, 0) der vertikale Scrollbalken und in (0, 1) der horizontale. Die buten Labellenlinien werden von einem Region-Objekt gebildet, die grauen Spaltenköpfe oben von einem weiteren Region-Objekt. Da beide Region-Objekte größer als sind als der Bereich, in dem sie angezeigt werden, habe ich jeweils noch ein Rectangle-Objekt drübergeclippt. Ohne Clip wird nach links und unten heraus beliebig weit weitergezeichnet, das will ich vermeiden.
Mein Plan ist jetzt, die beiden Regionobjekte hinter dem Clip-Rectangle herumzuschieben. Aber egal was ich tue, ich schiebe nur das geclippte Objekt als ganzes weg (siehe unterer und rechter Rand sowie die Spaltenköpfe):

Der Inhalt schiebt sich über den Tabellenkopf, aber unten rutscht der vorhandene Inhalt nicht nach, horizontal genau dasselbe. Wenn sich jetzt jemand fragt weshalb ich kein ScrollPane verwenden mag: Ein Scrollpane kann immer nur ein Nodeobjekt als Inhalt haben. Da ich die Spaltenköpfe aber nur vertikal, den Inhalt jedoch sowohl vertikal als auch horizontal verschieben will, müßte ich mit zwei verschachtelten
Hier ist die Methode, wo ich die Clips setze:
Ich habe schon so allerhand ausprobiert, auch beide Region-Objekte in eine VBox zu setzen...aber das bringt alles nicht das, was ich haben will. Hat da jemand vielleicht eine Idee?
Ich möchte etwas Scrollbarkeit in eine Tabelle einbauen. Ein echtes ScrollPane kann ich leider nicht benutzen. So sieht die Tabelle aus:

Das Ganze wird mit Hilfe einer GridPane gebildet - in (0, 0) sitzt der bunte Inhalt, in (1, 0) der vertikale Scrollbalken und in (0, 1) der horizontale. Die buten Labellenlinien werden von einem Region-Objekt gebildet, die grauen Spaltenköpfe oben von einem weiteren Region-Objekt. Da beide Region-Objekte größer als sind als der Bereich, in dem sie angezeigt werden, habe ich jeweils noch ein Rectangle-Objekt drübergeclippt. Ohne Clip wird nach links und unten heraus beliebig weit weitergezeichnet, das will ich vermeiden.
Mein Plan ist jetzt, die beiden Regionobjekte hinter dem Clip-Rectangle herumzuschieben. Aber egal was ich tue, ich schiebe nur das geclippte Objekt als ganzes weg (siehe unterer und rechter Rand sowie die Spaltenköpfe):

Der Inhalt schiebt sich über den Tabellenkopf, aber unten rutscht der vorhandene Inhalt nicht nach, horizontal genau dasselbe. Wenn sich jetzt jemand fragt weshalb ich kein ScrollPane verwenden mag: Ein Scrollpane kann immer nur ein Nodeobjekt als Inhalt haben. Da ich die Spaltenköpfe aber nur vertikal, den Inhalt jedoch sowohl vertikal als auch horizontal verschieben will, müßte ich mit zwei verschachtelten
Hier ist die Methode, wo ich die Clips setze:
Java:
void bindScrollbarsToClips(ScrollBar verticalScrollBar, ScrollBar horizontalScrollBar) {
this.verticalScrollBar = verticalScrollBar;
this.horizontalScrollBar = horizontalScrollBar;
if (headerPane != null) {
headerPaneClip = new Rectangle();
headerPane.setClip(headerPaneClip);
headerPane.translateXProperty().bind(horizontalScrollBar.valueProperty().multiply(-1));
}
if (stampsetsPane != null) {
stampsetPaneClip = new Rectangle();
stampsetsPane.setClip(stampsetPaneClip);
stampsetsPane.translateXProperty().bind(horizontalScrollBar.valueProperty().multiply(-1));
stampsetsPane.translateYProperty().bind(verticalScrollBar.valueProperty().multiply(-1));
}
}
Ich habe schon so allerhand ausprobiert, auch beide Region-Objekte in eine VBox zu setzen...aber das bringt alles nicht das, was ich haben will. Hat da jemand vielleicht eine Idee?