0

コンポーネントを表示するかどうかを設定する選択ボックスでメニューを実装しようとしています。このチェックボックスがあります:

final CheckMenuItem toolbarSubMenuNavigation = new CheckMenuItem("Navigation");
    toolbarSubMenuNavigation.setOnAction(new EventHandler<ActionEvent>()
    {
        @Override
        public void handle(ActionEvent e)
        {

            DataTabs.renderTab = toolbarSubMenuNavigation.isSelected();

            // call here the getter setter and send boolean flag
            System.out.println("subsystem1 #1 Enabled!");
        }
    }); 

そして、チェックボックスを選択した場合にのみレンダリングしたいこのタブペインがあります:

public static boolean renderTab;

public DataTabs()
{
}

public boolean isRenderTab()
{
    return renderTab;
}

public void setRenderTab(boolean renderTab)
{
    this.renderTab = renderTab;
}

// below this code
tabPane.setVisible(renderTab);

コードを実行すると、機能しません。私もこれをテストしました:

DataTabs tabs = new DataTabs(); // instantiate first
tabs.setRenderTab(toolbarSubMenuNavigation.isSelected());

 public static boolean renderTab;

    TabPane tabPane = new TabPane();


    public DataTabs()
    {
    }

    public boolean isRenderTab()
    {
        return renderTab;
    }

    public void setRenderTab(boolean renderTab)
    {
        tabPane.setVisible(renderTab);
    }

しかし、コードを実行しても結果が得られず、チェックボックスをオンまたはオフにします。これは完全なソース コードです。

http://pastebin.com/tkj4Fby1

たぶん、私が欠けているリスナーまたは何かを追加する必要がありますか?

編集テスト 3

このコードもテストしました:

final CheckMenuItem toolbarSubMenuNavigation = new CheckMenuItem("Navigation");
        toolbarSubMenuNavigation.setOnAction(new EventHandler<ActionEvent>()
        {
            @Override
            public void handle(ActionEvent e)
            {

                DataTabs.toolbarSubMenuNavigation = toolbarSubMenuNavigation;

                // call here the getter setter and send boolean flag
                System.out.println("subsystem1 #1 Enabled!");
            }
        });

// class with tabs

public static CheckMenuItem toolbarSubMenuNavigation;

    public static CheckMenuItem getToolbarSubMenuNavigation()
    {
        return toolbarSubMenuNavigation;
    }

    public static void setToolbarSubMenuNavigation(CheckMenuItem toolbarSubMenuNavigation)
    {
        DataTabs.toolbarSubMenuNavigation = toolbarSubMenuNavigation;
    }

// below
abPane.visibleProperty().bind(toolbarSubMenuNavigation.selectedProperty());

コードを実行すると NPE が発生します。

4

1 に答える 1