Vertikal und horizontal zentrierter Pane in ScrollPane

Kenan89

Bekanntes Mitglied
Hallo Leute,

sehe erst jetzt diese Rubrik, deswegen poste ich auch hier meine Frage:

Es geht darum in einem ScrollPane ein Pane einzufügen(GridPane, HBox, BorderPane, oder sonst was).
Dieser Pane soll sich aber nicht im ScrollPane oben links befinden, sondern zentriert werden.

Hier ein Beispielcode, der das Problem demonstriert:

Java:
public class App extends Application{
     
    public static void main(String[] args){
        Application.launch(args);
    }
         
    public void start(Stage rootStage){
        GridPane rootPane = new GridPane();
        Scene scene = new Scene(rootPane, 500, 500);
        rootStage.setScene(scene);
        rootStage.show();
         
        RowConstraints row = new RowConstraints();
        ColumnConstraints col = new ColumnConstraints();
         
        row.setPercentHeight(100);
        col.setPercentWidth(100);
         
        rootPane.getColumnConstraints().add(col);
        rootPane.getRowConstraints().add(row);
         
        ScrollPane scroll = new ScrollPane();
        StackPane centeredPane = new StackPane();
        centeredPane.setStyle("-fx-border-color: red");
        centeredPane.setPrefSize(200, 200);
        centeredPane.getChildren().add(new Button("TEST"));
         
        scroll.setHbarPolicy(ScrollBarPolicy.ALWAYS);
        scroll.setVbarPolicy(ScrollBarPolicy.ALWAYS);
        scroll.setContent(centeredPane);
         
        rootPane.add(scroll, 0, 0);
    }
 
}

Es schaut dann so aus:

Der rot umrandete pane soll horizontal und veritikal mittig zentriert sein im ScrollPane.

Danke im voraus für Hilfen.
 

MarkusM

Aktives Mitglied
Hi,

ich fürchte das wird so ohne weiteres nicht funktionieren. Man könnte die Größe des StackPanes auf die Größe der Stage setzen (abzüglich der Ränder...), dann wäre der Button bzw der Inhalt des Panes mittig.

Die Frage aller Fragen ist aber eher, worauf Du hinaus willst. Mir erschließt sich der Sinn der angefragten Konstellation nicht. Ein ScrollPane mach eigentlich nur Sinn wenn es mit "viel" Inhalt gefüllt wird, oder? Vielleicht erklärst Du mal kurz, was Dir genau vorschwebt.
 

Kenan89

Bekanntes Mitglied
Das ganze soll die GUI für ein Programm werden, womit man seine eigenen Spiele quasi kreieren kann(2D Spiele). Das Pane, was mittig platziert werden soll, ist die Spielkarte, die man mit Tilesets befüllen kann.
Deswegen wäre es cool, wenn es mittig sein würde. Mit Swing funktionierte es schnell. In FX bin ich noch relativ neu.
 

MarkusM

Aktives Mitglied
Wie wäre es denn ein BorderPane zu nehmen und die Karte im Center zu plazieren?

Ich bin auch noch relativ neu mit JavaFX unterwegs, aber vom Prinzip sollte alles machbar sein, was mit Swing auch möglich ist.
 

AngryDeveloper

Bekanntes Mitglied
Sollte eigentlich mit setFitToHeight und setFitToWidth funktionieren.
ScrollPane (JavaFX 2.2))

Habe hier mal eine FXML angehängt die eine (Map-)Editor Struktur darstellen könnte. Links eine Toolbar für Funktionen. Oben eine typische Menüleiste und in der Mitte die Map mit 1024x1024 Pixel (als Pane) in einem Scrollpane.

Ergebnis sieht dann etwa so aus:


Die FXML:
Code:
<?xml version="1.0" encoding="UTF-8"?>

<?import java.lang.*?>
<?import java.util.*?>
<?import javafx.scene.control.*?>
<?import javafx.scene.layout.*?>
<?import javafx.scene.paint.*?>

<AnchorPane id="AnchorPane" maxHeight="-Infinity" maxWidth="-Infinity" minHeight="-Infinity" minWidth="-Infinity" prefHeight="400.0" prefWidth="600.0" xmlns:fx="http://javafx.com/fxml">
  <children>
    <BorderPane prefHeight="400.0" prefWidth="600.0" AnchorPane.bottomAnchor="0.0" AnchorPane.leftAnchor="0.0" AnchorPane.rightAnchor="0.0" AnchorPane.topAnchor="0.0">
      <center>
        <ScrollPane fitToHeight="true" fitToWidth="true">
          <content>
            <Pane minHeight="1024.0" minWidth="1024.0" style="-fx-border-color: red" />
          </content>
        </ScrollPane>
      </center>
      <left>
        <ToolBar orientation="VERTICAL">
          <items>
            <Button mnemonicParsing="false" text="Button" />
          </items>
        </ToolBar>
      </left>
      <top>
        <MenuBar>
          <menus>
            <Menu mnemonicParsing="false" text="File">
              <items>
                <MenuItem mnemonicParsing="false" text="Close" />
              </items>
            </Menu>
            <Menu mnemonicParsing="false" text="Edit">
              <items>
                <MenuItem mnemonicParsing="false" text="Delete" />
              </items>
            </Menu>
            <Menu mnemonicParsing="false" text="Help">
              <items>
                <MenuItem mnemonicParsing="false" text="About" />
              </items>
            </Menu>
          </menus>
        </MenuBar>
      </top>
    </BorderPane>
  </children>
</AnchorPane>
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
C Swing Geschachteltes GUI mit BorderLayout - Vertikal & horizontal Verschieben AWT, Swing, JavaFX & SWT 1
DeeDee0815 SWT Label horizontal und vertikal zentrieren AWT, Swing, JavaFX & SWT 7
H JTable in JScrollPane scrollt vertikal, nicht horizontal AWT, Swing, JavaFX & SWT 5
G Problem mit horizontal und vertikal scrollen AWT, Swing, JavaFX & SWT 2
S JavaFX MenuItem in hoher (height größer) MenuBar vertikal zentrieren AWT, Swing, JavaFX & SWT 4
S Swing Component vertikal und hochizontal zentrieren? AWT, Swing, JavaFX & SWT 5
T Text in JTextPane vertikal (!) zentrieren AWT, Swing, JavaFX & SWT 4
N JPanel vertikal im BorderLayout zentrieren AWT, Swing, JavaFX & SWT 2
A Gridlayout Vertikal anordnen AWT, Swing, JavaFX & SWT 6
Dragonfire Swing JPanel nur vertikal scrollen AWT, Swing, JavaFX & SWT 4
hdi SWT Label Text vertikal zentrieren AWT, Swing, JavaFX & SWT 6
W Panels vertikal anordnen AWT, Swing, JavaFX & SWT 10
L JFreeChart - Legende vertikal AWT, Swing, JavaFX & SWT 5
C Swing Text vertikal zentrieren??? AWT, Swing, JavaFX & SWT 3
data89 Button(s) vertikal mittig in JPanel ausrichten AWT, Swing, JavaFX & SWT 7
J JTable vertikal srollen AWT, Swing, JavaFX & SWT 4
P JPanel in JScrollPane -> funktioniert nicht(vertikal scro AWT, Swing, JavaFX & SWT 5
W JTable wird vertikal in JScrollPane nicht ganz angezeigt AWT, Swing, JavaFX & SWT 2
F [SWT] Buttons vertikal zentrieren AWT, Swing, JavaFX & SWT 7
thE_29 Vertikal auffüllendes Layout AWT, Swing, JavaFX & SWT 5
W JSpinner: Button vertikal anordnen AWT, Swing, JavaFX & SWT 2
S Text eines JButtons vertikal schreiben AWT, Swing, JavaFX & SWT 5
m@nu Graphics: Per drawString() Text vertikal zentriert zeichnen AWT, Swing, JavaFX & SWT 5
W Components Focus mit TAB-Taste VERTIKAL bewegen AWT, Swing, JavaFX & SWT 4
V SWT: Label vertikal ausrichten AWT, Swing, JavaFX & SWT 11
G Vertikal schreiben AWT, Swing, JavaFX & SWT 5
L Vertikal ausgerichteter JButton AWT, Swing, JavaFX & SWT 4
G Schrift vertikal ausrichten AWT, Swing, JavaFX & SWT 2
J Suche nach einer horizontal aufklappbaren Toolbar AWT, Swing, JavaFX & SWT 1
B JScrollPane Horizontal klappt nicht. AWT, Swing, JavaFX & SWT 4
M Horizontal Scrollbar wird ignoriert AWT, Swing, JavaFX & SWT 10
Dit_ JDialog nur horizontal vergrößern AWT, Swing, JavaFX & SWT 3
S AWT Wie kann ich Text horizontal exakt positionieren? AWT, Swing, JavaFX & SWT 3
P Swing JScrollPane scrollt nur horizontal AWT, Swing, JavaFX & SWT 2
A JDialog nur horizontal zentriert AWT, Swing, JavaFX & SWT 2
J Problem mit JTextPane & JScrollPane (horizontal) AWT, Swing, JavaFX & SWT 3
A JTable in ScrollPane scrollt nicht horizontal AWT, Swing, JavaFX & SWT 2
F GridLayout horizontal ausrichten AWT, Swing, JavaFX & SWT 6

Ähnliche Java Themen

Neue Themen


Oben