スポンサーリンク

| キーワード:

ウィンドウ上部へメニューを追加

 

ui.java

package fxdemo;

import java.io.File;
import java.net.URL;
import javafx.scene.layout.BorderPane;
import javafx.application.Application;
import javafx.fxml.FXMLLoader;
import javafx.scene.Parent;
import javafx.scene.Scene;
import javafx.stage.Stage;

public class ui extends Application {

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

    @Override
    public void start(Stage stage) throws Exception {
        BorderPane root = FXMLLoader.load(getClass().getResource("sample.fxml"));
        Scene scene = new Scene(root);

        stage.setTitle("Menu Test");
        stage.setScene(scene);
        stage.show();
    }
}
 

 

ここではBorderPaneを使っているが、AnchorPaneやPaneでもできないことはない。

ただし、BorderPane以外を使う場合は以下のfxml内の<top>を外さないとエラーになる

 

sample.fxml

<?xml version="1.0" encoding="UTF-8"?>

<?import java.lang.*?>
<?import java.util.*?>
<?import javafx.scene.*?>
<?import javafx.scene.control.*?>
<?import javafx.scene.layout.*?>

<BorderPane prefHeight="150.0" prefWidth="300.0" 
            xmlns:fx="http://javafx.com/fxml">
    <top>
        <MenuBar>
            <menus>
                <Menu text="落葉高木" >
                    <MenuItem text="銀杏" />
                    <Menu text="桜">
                            <Menu text="エドヒガン" >
                                    <MenuItem text="天城吉野" />
                                    <MenuItem text="雨情枝垂" />
                                    <MenuItem text="薄毛大島" />
                            </Menu>
                            <Menu text="チョウジザクラ" >
                                <MenuItem text="オオミネザクラ" />
                                <MenuItem text="オクチョウジザクラ" />
                                <MenuItem text="チチブザクラ" />
                            </Menu>
                    </Menu>
                    <Menu text="松" >
                        <MenuItem text="蝦夷松" />
                        <MenuItem text="唐松" />
                        <MenuItem text="五葉松" />
                    </Menu>
                    <Menu text="梅" />
                </Menu>
                <Menu text="落葉低木" />
            </menus>
        </MenuBar>
    </top>
</BorderPane>

 

コンパイル

>javac fxdemo\ui.java

 

実行

java fxdemo.ui

 

javafx_menu

  • トップレベル(落葉高木,落葉低木)はMenuItemを使えない。
  • 銀杏はMenuItemを使っているので次階層を示す三角が表示されない
  • 梅はMenuを使っているので、入れ子にしていないが三角が表示される(中身はない)

 

 

 

コメントを残す

メールアドレスが公開されることはありません。

日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)


この記事のトラックバックURL: