sirve que para horizontal función funcion estado desplazamiento cuál barra css javafx scrollbar

css - que - Mueva la barra de desplazamiento vertical de un panel de desplazamiento hacia el lado izquierdo



funcion de la barra de estado (1)

Tú podrías

  • crear un ScrollBar
  • enlazar las propiedades ScrollBar a las propiedades relevantes del ScrollPane
  • ocultar las ScrollBars del ScrollPane

Aquí hay un borrador rápido:

ExternalScrollbar.java

import javafx.application.Application; import javafx.geometry.Orientation; import javafx.scene.Scene; import javafx.scene.control.ScrollBar; import javafx.scene.control.ScrollPane; import javafx.scene.layout.HBox; import javafx.scene.layout.Pane; import javafx.scene.layout.Priority; import javafx.scene.layout.VBox; import javafx.scene.shape.Line; import javafx.stage.Stage; public class ExternalScrollbar extends Application { @Override public void start(Stage stage) { Pane pane = new Pane(); Line line = new Line(100, 100, 1000, 1000); pane.getChildren().add(line); ScrollPane scrollPane = new ScrollPane(); scrollPane.setContent(pane); ScrollBar vScrollBar = new ScrollBar(); vScrollBar.setOrientation(Orientation.VERTICAL); vScrollBar.minProperty().bind(scrollPane.vminProperty()); vScrollBar.maxProperty().bind(scrollPane.vmaxProperty()); vScrollBar.visibleAmountProperty().bind(scrollPane.heightProperty().divide(pane.heightProperty())); scrollPane.vvalueProperty().bindBidirectional(vScrollBar.valueProperty()); ScrollBar hScrollBar = new ScrollBar(); hScrollBar.setOrientation(Orientation.HORIZONTAL); hScrollBar.minProperty().bind(scrollPane.hminProperty()); hScrollBar.maxProperty().bind(scrollPane.hmaxProperty()); hScrollBar.visibleAmountProperty().bind(scrollPane.widthProperty().divide(pane.heightProperty())); scrollPane.hvalueProperty().bindBidirectional(hScrollBar.valueProperty()); // hide scrollpane scrollbars // TODO: re-activate the code // scrollPane.setVbarPolicy(ScrollPane.ScrollBarPolicy.NEVER); // scrollPane.setHbarPolicy(ScrollPane.ScrollBarPolicy.NEVER); // scrollPane.setPadding(Insets.EMPTY); HBox hBox = new HBox(); HBox.setHgrow(scrollPane, Priority.ALWAYS); hBox.getChildren().addAll(vScrollBar, scrollPane); VBox vBox = new VBox(); VBox.setVgrow(hBox, Priority.ALWAYS); vBox.getChildren().addAll(hScrollBar, hBox); Scene scene = new Scene(vBox, 500, 400); scene.getStylesheets().add(this.getClass().getResource("style.css").toExternalForm()); stage.setScene(scene); stage.show(); vScrollBar.requestLayout(); hScrollBar.requestLayout(); } public static void main(String[] args) { launch(args); } }

style.css

.scroll-pane { -fx-background-insets: 0; -fx-padding: 0; } .scroll-pane:focused { -fx-background-insets: 0; } .scroll-pane .corner { -fx-background-insets: 0; }

Por supuesto, debe activar el código ocultando las barras de desplazamiento del ScrollPane.

Con JavaFX, quiero mover la barra de desplazamiento vertical de un panel de desplazamiento hacia el lado izquierdo del componente, en lugar del lado derecho predeterminado. Intenté hacerlo con -fx-alignment en CSS pero no funcionaba.

.scroll-pane .scroll-bar:vertical { -fx-alignment: LEFT; }