setFocusTraversable поведение на MenuBar в JavaFX 2.0 - PullRequest
0 голосов
/ 19 марта 2012

Я заметил проблему с setFocusTraversable () в элементе управления MenuBar. Если я вызываю setFocusTraversable (false) для объекта menuBar, фокус перемещается (я вижу выделенную / выделенную строку меню) в меню, когда я нажимаю Tab из TextField, но событие (change ()) не срабатывает. Если я вызываю setFocusTraversable (true) для объекта menuBar и нажимаю Tab, когда в TextField фокус не визуально перемещается в MenuBar (TextField теряет фокус), но событие срабатывает, и, кроме того, фокус нельзя установить на TextField с помощью Tab или Shift + Tab , Я не уверен, является ли это ошибкой или проблемой с моим пониманием.

Вот код.

public class MenuTest extends Application 
implements ChangeListener
{
    MenuBar menuBar = new MenuBar();
    TextField tf1 = new TextField("One");
    public static void main(String[] args)
    {
    Application.launch(args);
    }

    @Override
    public void start(Stage primaryStage)
    {
        Group content = new Group();
        BorderPane paneLayout = new BorderPane();
        final Menu menu1 = new Menu("File");

        menuBar.getMenus().addAll(menu1);
        Menu exit = new Menu("Exit");
        menu1.getItems().add(exit);
        content.getChildren().add(tf1);
        paneLayout.setTop(menuBar);
        paneLayout.setCenter(content);
        Scene scene = new Scene(paneLayout, 300, 250);
        primaryStage.setScene(scene);
        primaryStage.show();

        menuBar.setFocusTraversable(false);
        menuBar.focusedProperty().addListener(this);
        tf1.focusedProperty().addListener(this);
        tf1.requestFocus();
    }

    public void changed(ObservableValue ov, Object t, Object t1)
    {
    System.out.println("focus gained - " + ov.toString()); 
    }
}

Пожалуйста, помогите.

Спасибо, KK

PS: MenuBar API явно говорит, что «MenuBar устанавливает focusTraversable в false». но ведет себя по-другому.

1 Ответ

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

К сожалению, вы столкнулись с ошибкой: http://javafx -jira.kenai.com / browse / RT-20595

...