---
category: swing
folder: ImplicitDownCycleTraversal
title: FocusTraversalPolicyの自動的なフォーカスダウンサイクルを無効にする
tags: [Focus, FocusTraversalPolicy]
author: aterai
pubdate: 2016-10-24T00:34:35+09:00
description: SortingFocusTraversalPolicyを設定したパネルで、暗黙的にフォーカスをダウンサイクルで移動しないように設定します。
image: https://drive.google.com/uc?id=1BhqefPKEKZ7kqrsjy2ySEncqitLXR7qrfw
---
* 概要 [#summary]
`SortingFocusTraversalPolicy`を設定したパネルで、暗黙的にフォーカスをダウンサイクルで移動しないように設定します。

#download(https://drive.google.com/uc?id=1BhqefPKEKZ7kqrsjy2ySEncqitLXR7qrfw)

* サンプルコード [#sourcecode]
#code(link){{
JPanel p = new JPanel();
LayoutFocusTraversalPolicy ftp = new LayoutFocusTraversalPolicy();
ftp.setImplicitDownCycleTraversal(false);
p.setFocusCycleRoot(true);
p.setFocusTraversalPolicy(ftp);
}}

* 解説 [#explanation]
上記のサンプルでは、`SortingFocusTraversalPolicy#setImplicitDownCycleTraversal(...)`メソッドで、暗黙的にフォーカスをダウンサイクルで移動するかどうかを切り替えて、子パネルへのフォーカス移動のテストを行っています。
上記のサンプルでは、`SortingFocusTraversalPolicy#setImplicitDownCycleTraversal(...)`メソッドで暗黙的にフォーカスをダウンサイクルで移動するかどうかを切り替えて子パネルへのフォーカス移動のテストを行っています。

- `SortingFocusTraversalPolicy#setImplicitDownCycleTraversal(true)`
-- デフォルト
-- デフォルトフォーカスの`JCheckBox`からKBD{Tab}キーで子パネル内の`JTextArea`にダウンサイクルでフォーカスが移動可能
- `SortingFocusTraversalPolicy#setImplicitDownCycleTraversal(false)`
-- 子パネルが`setFocusCycleRoot(true)`の場合、デフォルトフォーカスの`JCheckBox`からKBD{Tab}キーを押すとこれを飛ばして`JButton`にフォーカスが移動
-- 子パネルが`setFocusCycleRoot(false)`の場合、デフォルトフォーカスの`JCheckBox`からKBD{Tab}キーを押すと`JTextArea`にフォーカスが移動

* 参考リンク [#reference]
- [https://docs.oracle.com/javase/jp/8/docs/api/javax/swing/SortingFocusTraversalPolicy.html#setImplicitDownCycleTraversal-boolean- SortingFocusTraversalPolicy#setImplicitDownCycleTraversal(boolean) (Java Platform SE 8)]

* コメント [#comment]
#comment
#comment