2017-05-29 99 views
1

我有一個三角形的小按鈕。然而,它看起來更像是一個二維形狀,並沒有真正的按鈕感。請看看下面我的代碼:我怎樣才能把我的按鈕前面

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(); 

我怎樣才能使它看起來更像一個按鈕,而不是2D平面形狀。請注意,我無法增加此按鈕的大小。有沒有其他方法可以使小尺寸的形狀看起來更像是一個按鈕?

+0

因爲它是一個按鈕,如何使用.setIcon()向其添加自定義ImageIcon? –

+0

@NickTritsis - 是的,我曾考慮過它,但我不能這樣做,因爲它不會與我的應用程序中的其他按鈕一致。 – Ulkurz

回答

1

其實這是造型,CSS尤其是JavaFX的問題。 您可以更改按鈕的樣式並保持相同的形狀(三角形)。

例如,如果我申請這個CSS style這是我從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)"; 

而且讓你的代碼借來的:

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); 

它會給這種風格:

some style

當你的ori ginal一個是:

original style

請注意,您可以看到在該網站上的按鈕以外的例子(樣式)(一種3D的)(這完全取決於你的喜好)。

+0

謝謝,我會試試這個。 – Ulkurz