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を設定します。" と述べています異なる動作をします。
あなたは、あなたが使用しているJavaFXのバージョンに関する情報を追加してくださいことはできますか? 2.0? –
@SergeyGrinev:JDK 1.6.0_27でJavaFX 2.0を使用しています – krish