2013-09-04 40 views

Trả lời

7

Xoay là cách để làm điều này, không có giải pháp nào khác.

rotated

Mẫu mã:

import javafx.application.Application; 
import javafx.geometry.Pos; 
import javafx.scene.*; 
import javafx.scene.control.*; 
import javafx.scene.layout.StackPane; 
import javafx.stage.Stage; 

/* Displays a button with it's text rotated 90 degrees to the left */ 
public class RotatedText extends Application { 
    @Override public void start(Stage stage) { 
     Button feedbackButton = createButtonWithRotatedText("Feedback Form"); 

     StackPane layout = new StackPane(); 
     layout.getChildren().setAll(feedbackButton); 
     StackPane.setAlignment(feedbackButton, Pos.TOP_RIGHT); 
     layout.setPrefSize(225, 275); 
     layout.setStyle("-fx-background-color: lightcyan;"); 

     stage.setScene(new Scene(layout)); 
     stage.show(); 
    } 

    private Button createButtonWithRotatedText(String text) { 
     Button button = new Button(); 
     Label label = new Label(text); 
     label.setRotate(-90); 
     button.setGraphic(new Group(label)); 

     // in-line css just used for sample purposes, 
     // usually you would apply a stylesheet. 
     button.setStyle(
       "-fx-base: orange; " + 
       "-fx-font-size: 30px; " + 
       "-fx-text-background-color: whitesmoke;" 
     ); 

     return button; 
    } 

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

gì là lợi ích của 'button.setGraphic (mới Group (nhãn))' qua 'button.setGraphic (nhãn) '? – c0der

+0

Hãy thử và xem C0der. Nếu bạn quấn nó trong một nhóm, bạn sẽ có được kết quả mong muốn. Nếu bạn không quấn nó trong một nhóm bạn sẽ nhận được một mớ hỗn độn bị cắt xén. Điều này là do cách bố cục hoạt động cho [Nhóm] (https://docs.oracle.com/javase/9/docs/api/javafx/scene/Group.html) (khác với các loại nút khác): "nếu biến đổi và hiệu ứng được thiết lập trực tiếp trên trẻ em của nhóm này, những người sẽ được bao gồm trong giới hạn bố trí của nhóm này ". – jewelsea