2012-07-22 65 views
3

我有一個相當大的按鈕(minWidthminHeight明確設置爲大數字),並且在那個大按鈕中有相對較小的圖標和一些文本。圖標和文本不會消耗所有可用空間,並最終放置在按鈕的中心。如何對齊大按鈕內的圖標和文字?

我想將圖標和文本放在按鈕的左側。但似乎我不明白所有那些路線是什麼意思,因爲設置alignmentBASELINE_LEFT或設置textAlignmentLEFT沒有改變任何東西。

我該如何解決?

回答

11

屬性textAlignment控制多行文字對齊,所以它不會幫助你。

但兩者

btn.setStyle("-fx-alignment: LEFT;"); 

btn.setAlignment(Pos.BASELINE_LEFT); 

應該爲你工作。見下面的例子。

enter image description here

public class ILoveBigButtonsAndICannotLie extends Application { 

    @Override 
    public void start(Stage primaryStage) { 
     Button btn = new Button(); 
     btn.setText("Button"); 
     btn.setGraphic(new Rectangle(10,10, Color.RED)); 
     btn.setMinHeight(200); 
     btn.setMinWidth(250); 
     //btn.setStyle("-fx-alignment: LEFT;"); 
     btn.setAlignment(Pos.BASELINE_LEFT); 

     StackPane root = new StackPane(); 
     root.getChildren().add(btn); 
     primaryStage.setScene(new Scene(root, 300, 250)); 
     primaryStage.show(); 
    } 

    public static void main(String[] args) { launch(); } 
} 
+0

謝謝!你是絕對正確的 - 似乎ScalaFX包裝有一些問題。它通過'getProperties.put(「alignment」,a)'設置對齊方式。 – Rogach 2012-07-22 13:42:14