ContextMenu не работает на JavaFX2 TextArea? - PullRequest
1 голос
/ 04 марта 2012

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

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 Ответ

1 голос
/ 04 марта 2012

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

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

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

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