ContextMenu не работает с JavaFX2 TextArea?

Это не работает для меня, контекстное меню не отображается:

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 я установил?

Заранее благодарю за любую помощь.


person alscu    schedule 04.03.2012    source источник


Ответы (1)


Ваш код работает для меня с JavaFX 2.1 dev build для Windows. Щелчок правой кнопкой мыши по текстовой области показывает меню с одним элементом с именем «элемент».

Можете ли вы попробовать версию 2.1 dev?

Вы можете узнать свою текущую версию, запустив следующий код:

        System.out.println(com.sun.javafx.runtime.VersionInfo.getVersion());
person Sergey Grinev    schedule 04.03.2012
comment
Привет, Сергей, как обычно, спасибо за помощь. У меня была версия 2.0.3. Пробовал на бете 2.1, работает нормально. Спасибо. - person alscu; 05.03.2012