2014-12-07 19 views
7

Ho uno splitpane creato da FXML che consiste di tre riquadri da sinistra a destra. Voglio essere in grado di nascondere il riquadro più a destra ma non riesco a trovare nulla per nasconderlo. Se giro la visibilità nasconde il contenuto del pannello. Quello che voglio è nasconderlo temporaneamente, quindi il pannello viene rimosso visivamente.JavaFX 8, come nascondere un riquadro in Splitpane?

Come soluzione temporanea, sposto il divisore al 100%, ma questo lascia visibile il divisore. Un altro effetto collaterale è che se ridimensiono la finestra principale il divisore non rimane nella posizione più a destra.

Eventuali suggerimenti per nascondere un riquadro nello splitpane?

O qualche consiglio sul modo migliore per ottenere ciò senza splitpane (il riquadro più a destra deve essere ridimensionabile quando non è nascosto). indicazioni generali alle tecniche/contenitori sarebbe apprezzato visto che sono nuovo a Java/JavaFX, ma non per la programmazione :)


risposta

12

Sembra che ho trovato, anche pensato che non è una Mostra/Nascondi affare semplice. Il mio splitpane è chiamato "mainSplitPane", e quello che voglio nascondere/mostrare è il terzo. Dopo l'inizializzazione del controller, recupero il terzo riquadro e lo memorizzo in "componentsPane".

dichiarata in controllerclass:

Node componentsPane; 

Chiamato in metodo initialize della controllerclass:

componentsPane=mainSplitPane.getItems().get(2); 

Codice per nascondere:

mainSplitPane.getItems().remove(componentsPane); 

e il codice per mostrare:

mainSplitPane.getItems().add(2, componentsPane); 
mainSplitPane.setDividerPosition(1, 0.8); 

Un effetto collaterale è che devo impostare dividerposition dal momento che è stato rimosso.

+0

Altri metodi/puntatore/suggerimenti? – Backtomusic

Problemi correlati