2012-03-19 6 views
0

MenuBarコントロールのsetFocusTraversable()に関する問題に気付きました。 menuBarオブジェクトでsetFocusTraversable(false)を呼び出すと、TextFieldからTabキーを押したときにフォーカスが移動します(変更された())イベントが呼び出されません。 menuBarオブジェクトでsetFocusTraversable(true)を呼び出し、TextFieldでTabキーを押すと、フォーカスが視覚的にMenuBarに移動しません(TextFieldはフォーカスを失います)が、イベントが発生し、タブまたはShift + Tabを使用してTextFieldにフォーカスを設定することはできません。 。これがバグか私の理解の問題かどうかはわかりません。JavaFX 2.0のMenuBarでsetFocusTraversableビヘイビア

ここにコードがあります。

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:メニューバーのAPIは、明示的に "メニューバーがfalseにfocusTraversableを設定します。" と述べています異なる動作をします。

+0

あなたは、あなたが使用しているJavaFXのバージョンに関する情報を追加してくださいことはできますか? 2.0? –

+0

@SergeyGrinev:JDK 1.6.0_27でJavaFX 2.0を使用しています – krish

答えて

関連する問題