質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
JavaFX

JavaFXとは、Java仮想マシン上で動作するリッチインターネットアプリケーション (RIA) のGUIライブラリです。Swingとは異なり、FXMLと呼ばれる XMLとCSSを併用してデザインを記述します。

Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

FXML

FXMLは、JavaFXに用意されているXMLベースのGUI記述言語です

Q&A

解決済

1回答

1657閲覧

JavaFXでButtonにContextMenuを追加したい。

BOKETAMIAN

総合スコア3

JavaFX

JavaFXとは、Java仮想マシン上で動作するリッチインターネットアプリケーション (RIA) のGUIライブラリです。Swingとは異なり、FXMLと呼ばれる XMLとCSSを併用してデザインを記述します。

Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

FXML

FXMLは、JavaFXに用意されているXMLベースのGUI記述言語です

0グッド

0クリップ

投稿2020/07/17 02:21

前提・実現したいこと

JavaFXでButtonにContextMenuを追加したいです

発生している問題・エラーメッセージ

java.lang.NullPointerException at view.MainPageView.Init(MainPageView.java:25) at view.BaseView.NextView(BaseView.java:75) at application.Main.start(Main.java:26) at javafx.graphics/com.sun.javafx.application.LauncherImpl.lambda$launchApplication1$9(LauncherImpl.java:846) at javafx.graphics/com.sun.javafx.application.PlatformImpl.lambda$runAndWait$12(PlatformImpl.java:455) at javafx.graphics/com.sun.javafx.application.PlatformImpl.lambda$runLater$10(PlatformImpl.java:428) at java.base/java.security.AccessController.doPrivileged(Native Method) at javafx.graphics/com.sun.javafx.application.PlatformImpl.lambda$runLater$11(PlatformImpl.java:427) at javafx.graphics/com.sun.glass.ui.InvokeLaterDispatcher$Future.run(InvokeLaterDispatcher.java:96) at javafx.graphics/com.sun.glass.ui.win.WinApplication._runLoop(Native Method) at javafx.graphics/com.sun.glass.ui.win.WinApplication.lambda$runLoop$3(WinApplication.java:174) at java.base/java.lang.Thread.run(Thread.java:834)

該当のソースコード

JavaFX

1package view; 2 3import javafx.scene.control.Button; 4import javafx.scene.control.ContextMenu; 5import javafx.scene.control.MenuItem; 6import javafx.scene.layout.AnchorPane; 7 8public class MainPageView extends BaseView<AnchorPane> { 9 10 public MainPageView(String i_fileName) { 11 super(i_fileName); 12 } 13 14 @Override 15 public void Init() { 16 17 Button button1 = (Button)getObject(""); 18 19 ContextMenu con1 = new ContextMenu(); 20 21 MenuItem menuitem = new MenuItem("ファイル"); 22 23 con1.getItems().add(menuitem); 24 25 button1.setContextMenu(con1); 26 } 27}

試したこと

自分なりに海外のサイトなども調べてみましたが解決策が見つかりませんでした。

補足情報(FW/ツールのバージョンなど)

JavaFX Scene Builder 11.0.0

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

java.lang.NullPointerException at view.MainPageView.Init(MainPageView.java:25)

25行目。

button1.setContextMenu(con1);

button1がnullなのではないですか? ContextMenuを追加するのは、それを解決してからだとおもいますけど。

投稿2020/07/17 02:44

shiketa

総合スコア3971

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

BOKETAMIAN

2020/07/17 03:01

Button1のnullをなおしたらかいけつしました! アドバイスありがとうございました!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問