2017-09-18 3 views
0

J'ai utilisé le nœud PopOver de controlsFX, donc je voulais changer la couleur d'arrière-plan du contrôle, donc j'ai changé la couleur de fond de mon nœud de contenu mais flèche et l'en-tête décoloré here (les cases blanches ne sont que des cartes et sont destinés à être blanc) donc j'ai essayé cette approche que j'ai trouvé hereControlsFX PopOver - l'ajout de classes de styles supprime les bordures

globalScopingPopOver.show(owner); 

((Parent) globalScopingPopOver.getSkin().getNode()).getStylesheets() 
     .remove(getClass().getResource("/css/myCustomPopOver.css").toExternalForm()); 

((Parent) globalScopingPopOver.getSkin().getNode()).getStylesheets() 
     .add(getClass().getResource("/css/myCustomPopOver.css").toExternalForm()); 

où myCustomPopOver.css contient:

.popover > .border { 
    -fx-fill: rgb(0,0,0); 
} 

.popover > .header { 
    -fx-fill: rgb(0,0,0); 
} 

qui m'a laissé avec this qui a deux problèmes évidents, le premier est que la bordure droite est rognée et la seconde est que la flèche est cachée sous la barre de pied de page.

Détacher le popover en faisant glisser résout le problème de la bordure droite, mais en détachant et réaffectant par code nous renvoie à l'endroit où nous avons commencé à éliminer les effets de la feuille de style CSS:

globalScopingPopOver.detach(); 
globalScopingPopOver.setDetached(false); 

Ainsi, toute aide pourquoi ce qui se passe et comment le réparer?

Merci!

Répondre

0

Appeler show(owner) une deuxième fois après l'ajout de la feuille de style a fait l'affaire pour moi.

+0

C'est fait! Merci! –