---
category: swing
folder: FocusCycleRoot
title: JPanelをフォーカストラバーサルサイクルのルートにする
tags: [JPanel, Focus, KeyboardFocusManager]
author: aterai
pubdate: 2010-07-19T23:07:24+09:00
description: JPanelがフォーカストラバーサルサイクルのルートになるように設定します。
image: https://lh4.googleusercontent.com/_9Z4BYR88imo/TQTNCX36INI/AAAAAAAAAaI/xunzBpsDJLk/s800/FocusCycleRoot.png
---
* 概要 [#summary]
`JPanel`がフォーカストラバーサルサイクルのルートになるように設定します。

#download(https://lh4.googleusercontent.com/_9Z4BYR88imo/TQTNCX36INI/AAAAAAAAAaI/xunzBpsDJLk/s800/FocusCycleRoot.png)

* サンプルコード [#sourcecode]
#code(link){{
JPanel p1 = new JPanel();
p1.setFocusCycleRoot(true);
p1.add(new JTextField(16));
}}

* 解説 [#explanation]
上記のサンプルでは、以下の`JPanel`がそれぞれフォーカストラバーサルサイクルのルートコンテナになるように設定しています。

- 左`JPanel`
-- `setFocusCycleRoot(true)`
-- `Container#setFocusCycleRoot(true)`
- 右`JPanel`
-- `setFocusCycleRoot(true)`
-- `setFocusTraversalPolicyProvider(true)`
-- `Container#setFocusCycleRoot(true)`
-- `Container#setFocusTraversalPolicyProvider(true)`
-- 順方向キーボードトラバーサルとリバースキーボードトラバーサルを入れ替え

* 参考リンク [#reference]
- [https://docs.oracle.com/javase/jp/8/docs/api/java/awt/Container.html#setFocusCycleRoot-boolean- Container#setFocusCycleRoot(boolean) (Java Platform SE 8)]
- [https://docs.oracle.com/javase/jp/8/docs/api/java/awt/Container.html#setFocusTraversalPolicyProvider-boolean- Container#setFocusTraversalPolicyProvider(boolean) (Java Platform SE 8)]
- [[Focusの移動>Swing/FocusTraversal]]

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