2017-05-29 2 views
1

J'ai un petit bouton en forme de triangle. Cependant, il ressemble plus à une forme en 2D et n'a pas vraiment la sensation d'un bouton. S'il vous plaît regarder mon code ci-dessous:Comment puis-je amener mon bouton à l'avant

private String style = 
     "-fx-min-width: 10px; " + 
     "-fx-min-height: 10px; " + 
     "-fx-background-color: grey;"; 

Button btn = new Button(); 
btn.setShape(new Polygon(new double[]{ 
     0.0, 0.0, 
     2.0, 3.0, 
     0.0, 6.0 
     })); 

btn.setStyle(style); 
btn.toFront(); 

Comment puis-je le rendre plus comme un bouton plutôt qu'une forme 2D plat. Veuillez noter que je ne peux pas augmenter la taille de ce bouton. Y at-il une alternative pour faire apparaître une forme de petite taille plus comme un bouton?

+0

puisque, c'est un bouton, que diriez-vous d'ajouter un ImageIcon personnalisé avec .setIcon()? –

+0

@NickTritsis - oui, j'y avais pensé mais je ne peux pas le faire car cela ne serait pas cohérent avec les autres boutons de mon application. – Ulkurz

Répondre

1

En fait c'est une question de de style, CSS en particulier plus de JavaFX. Vous pouvez changer le style du bouton et conserver la même forme (triangle).

Par exemple, si j'Appliquons ce CSS style que j'emprunté à here

String style = 
      "-fx-background-color: " 
      + "linear-gradient(#686868 0%, #232723 25%, #373837 75%, #757575 100%)," 
      + "linear-gradient(#020b02, #3a3a3a)," 
      + "linear-gradient(#9d9e9d 0%, #6b6a6b 20%, #343534 80%, #242424 100%)," 
      + "linear-gradient(#8a8a8a 0%, #6b6a6b 20%, #343534 80%, #262626 100%)," 
      + "linear-gradient(#777777 0%, #606060 50%, #505250 51%, #2a2b2a 100%);" 
      + "-fx-background-insets: 0,1,4,5,6;" 
      + "-fx-background-radius: 9,8,5,4,3;" 
      + "-fx-padding: 15 30 15 30;" 
      + "-fx-effect: dropshadow(three-pass-box , rgba(255,255,255,0.2) , 1, 0.0 , 0 , 1)"; 

Et garder votre code:

Button btn = new Button(); 
btn.setShape(new Polygon(new double[]{ 
         0.0, 0.0, 
         2.0, 3.0, 
         0.0, 6.0}));       
btn.setStyle(style); 

Il donnera ce style:

some style

Alors que votre ori un gine est:

original style

Notez que vous pouvez voir d'autres exemples (styles) pour les boutons (genre de 3D) sur ce site (il est à votre préférence).

+0

merci, je vais essayer ça. – Ulkurz