2016-12-12 6 views
1

私はアラートボックスにテキストが埋め込まれており、フォーマットの理由から、このアラートボックス内に何らかの理由でGridPaneを配置して、すべてのテキストが正しく配置されているかどうか疑問に思っていました。JavaFXの使用:AlertダイアログボックスにGridPaneを配置することは可能ですか?

GridPaneでこれを行うことができない場合は、他にも使用できるテキストの書式設定方法がありますか?

答えて

2

はい、ダイアログボックスのset any node as contentできます。

グリッドコンテンツとしてフォーマットされた凍ったオレンジ色の契約の売り/買いの警告です。

frozen orange juice contracts

import javafx.application.Application; 
import javafx.geometry.HPos; 
import javafx.geometry.Insets; 
import javafx.scene.Scene; 
import javafx.scene.control.*; 
import javafx.scene.layout.*; 
import javafx.stage.Modality; 
import javafx.stage.Stage; 

public class GridAlert extends Application { 
    @Override 
    public void start(Stage stage) { 
     Alert alert = new Alert(Alert.AlertType.INFORMATION); 
     alert.setHeaderText("Frozen Orange Juice Contracts"); 

     GridPane grid = new GridPane(); 
     grid.addRow(0, new Label("Sell"), new Label("142")); 
     grid.addRow(1, new Label("Buy"), new Label("29")); 
     grid.setHgap(30); 
     ColumnConstraints right = new ColumnConstraints(); 
     right.setHalignment(HPos.RIGHT); 
     grid.getColumnConstraints().setAll(new ColumnConstraints(), right); 

     alert.getDialogPane().setContent(grid); 

     Button showAlert = new Button("Show Alert"); 
     showAlert.setOnAction(event -> alert.showAndWait()); 

     HBox layout = new HBox(10); 
     layout.getChildren().addAll(
       showAlert 
     ); 
     layout.setPadding(new Insets(10)); 
     stage.setScene(new Scene(layout)); 
     stage.show(); 

     alert.initOwner(stage); 
     alert.initModality(Modality.WINDOW_MODAL); 
    } 

    public static void main(String[] args) { 
     launch(); 
    } 
} 
関連する問題