ContextMenu没有在JavaFX2 TextArea上工作?

时间:2012-03-04 01:05:41

标签: javafx-2

这对我不起作用,上下文菜单不显示:

import javafx.application.Application;
import javafx.event.EventHandler;
import javafx.scene.Group;
import javafx.scene.Scene;
import javafx.scene.control.ContextMenu;
import javafx.scene.control.MenuItem;
import javafx.scene.control.TextArea;
import javafx.stage.Stage;
import javafx.stage.WindowEvent;

/**
 *
 * @author Alvaro
 */
public class TextAreaContextMenu extends Application {
    Group root = new Group();

    @Override
    public void start(Stage primaryStage) throws Exception {
        primaryStage.setScene(new Scene(root));
        TextArea t = new TextArea();
        ContextMenu m = new ContextMenu();
        m.setOnShowing(new EventHandler<WindowEvent>() {

            @Override
            public void handle(WindowEvent arg0) {
                System.out.println("Showing...");
            }
        });
        MenuItem item = new MenuItem("Item");
        m.getItems().add(item);
        t.setContextMenu(m);
        root.getChildren().add(t);  
        primaryStage.show();
    }

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

这是一个错误吗?或者我做错了什么? 我正在运行jdk1.7.0_02,我认为JavaFX 2.0.2 SDK。 顺便说一句,我如何找到我已安装的JavaFX SDK版本?

提前感谢您的帮助。

1 个答案:

答案 0 :(得分:1)

您的代码适用于Windows上的JavaFX 2.1 dev版本。右键单击文本区域显示菜单,其中包含一个名为“item”的元素。

你能试试2.1开发版吗?

您可以通过运行下一个代码找到当前版本:

        System.out.println(com.sun.javafx.runtime.VersionInfo.getVersion());