JavaFx centrare un Pane in uno ScrollPane

di il
2 risposte

JavaFx centrare un Pane in uno ScrollPane

Salve,

ho la seguente sezione di codice:
grp = new Pane();

        grp.setPrefHeight(DEFAULT_GRP_HEIGHT);
        grp.setPrefWidth(DEFAULT_GRP_WIDHT);


        grp.setStyle("-fx-background-radius: 5;" +
                "-fx-background-color: #7a7a7a;" +
                "-fx-border-radius: 5;");

        grpScroll = new ScrollPane();
        grpScroll.setStyle("-fx-background-radius: 5;" +
                           "-fx-border-radius: 5;" +
                           "-fx-border-color: grey;" +
                           "-fx-border-style: solid inside;" +
                           "-fx-border-width: 2");


        grpScroll.setContent(grp);


        zoom = new ZoomHandler(grp);
        grpScroll.addEventFilter(ScrollEvent.ANY, zoom);
        grpScroll.setPannable(true);
in pratica quello che dovrei fare e' centrare il Pane allo scrollPane.
attraverso un altra classe ho modo di cambiare la dimensione del Pane, ma il problema e' che il Pane rimane sempre agganciato all'angolo in alto a sinistra dello scrollpane.
esiste un modo per fare un bind dei due centri?

grazie

2 Risposte

  • Re: JavaFx centrare un Pane in uno ScrollPane

    Non so se ho capito bene il problema, ma una possibile soluzione potrebbe essere quella di associare allo scrollpane un JPanel con layout a griglia 1x3. Dopodichè crei 3 JPanel e li associ a questo panel. Il secondo panel che associerai sarà quello su cui lavorerai e che risulterà centrato.

    Ti riporto un esempio. Il JPanel con sfondo nero è quello centrato su cui in futuro dovrai lavorare.
    
    		JPanel panelScroll = new JPanel();
    		panelScroll.setLayout(new GridLayout(1,3));
    		
    		JPanel p1 = new JPanel();
    		p1.setBackground(Color.WHITE);
    		JPanel p2 = new JPanel();
    		p2.setBackground(Color.BLACK);
    		JPanel p3 = new JPanel();
    		p3.setBackground(Color.WHITE);
    		
    		panelScroll.add(p1);
    		panelScroll.add(p2);
    		panelScroll.add(p3);
    		
    		JScrollPane scrollPane = new JScrollPane(panelScroll);
    
  • Re: JavaFx centrare un Pane in uno ScrollPane

    Grazie del consiglio, ma vorrei non utilizzare swing.
    vorrei limitarmi a tutte classi JavaFX.
    apprezzo comunque il suggerimento
Devi accedere o registrarti per scrivere nel forum
2 risposte