top / index / prev / next / target / source
日記形式でつづる いがぴょんコラム ウェブページです。
大変残念なことに、現行バージョンの JavaFX 2 にはメッセージボックス API が存在しません。 仕方がないので自分で作ることになります。ここに ものすごく単純なメッセージボックス API のサンプルを示します。モーダルダイアログボックスでメッセージを表示します。 ☆現実的には、これにアイコンなどを追加したり、YES/NO/Cancel などのバリエーションを追加していくことになります。 ☆JavaFX 2.2 以降でのみ動作します。∵dialog.showAndWait();
package sample;
import javafx.event.ActionEvent;
import javafx.event.EventHandler;
import javafx.geometry.Pos;
import javafx.scene.Scene;
import javafx.scene.control.Button;
import javafx.scene.control.Label;
import javafx.scene.layout.StackPane;
import javafx.scene.layout.VBox;
import javafx.stage.Modality;
import javafx.stage.Stage;
import javafx.stage.Window;
/**
* すごく単純な JavaFX 2 によるメッセージボックスのサンプル。
*/
public class MyMessageBox {
public static void showMessageDialog(final Window parentWindow,
final String message, final String title) {
final Stage dialog = new Stage();
dialog.setTitle(title);
dialog.setResizable(false);
dialog.initModality(Modality.WINDOW_MODAL);
if (parentWindow != null) {
dialog.initOwner(parentWindow);
}
final StackPane pane = new StackPane();
dialog.setScene(new Scene(pane));
{
final VBox vbox = new VBox();
pane.getChildren().add(vbox);
vbox.setAlignment(Pos.CENTER);
vbox.setMinWidth(300);
vbox.getChildren().add(new Label(""));// 空行
vbox.getChildren().add(new Label(message));
vbox.getChildren().add(new Label(""));// 空行
final Button btnOk = new Button();
btnOk.setText("OK");
btnOk.setOnAction(new EventHandler<ActionEvent>() {
@Override
public void handle(ActionEvent e) {
dialog.close();
}
});
vbox.getChildren().add(btnOk);
vbox.getChildren().add(new Label(""));// 空行
}
dialog.showAndWait();
}
}