• 追加された行はこの色です。
  • 削除された行はこの色です。
TITLE:BorderにJComponentを配置
#navi(../)
RIGHT:Posted by [[terai]] at 2006-04-10
*BorderにJComponentを配置 [#w546bab3]
>編集者:[[Terai Atsuhiro>terai]]~
作成日:2006-04-10~
更新日:&lastmod;

#contents

**概要 [#x7df08ef]
BorderにJCheckBoxやJButtonなどを配置します。[[Santhosh Kumar's Weblog>http://www.jroller.com/page/santhosh]]の[[ComponentTitledBorder>http://www.jroller.com/page/santhosh?entry=component_titled_border]]を利用しています。

-&jnlp;
-&jar;
-&zip;

#screenshot

**サンプルコード [#z4b6066a]
#code{{
 JCheckBox c = new JCheckBox("adfasdf", true);
 c.setFocusPainted(false); 
 JLabel l1 = new JLabel("adfasdfasdfa");
 Border eb = BorderFactory.createEtchedBorder();
 l1.setBorder(new ComponentTitledBorder(c, l1, eb));
JCheckBox c = new JCheckBox("adfasdf", true);
c.setFocusPainted(false); 
JLabel l1 = new JLabel("adfasdfasdfa");
Border eb = BorderFactory.createEtchedBorder();
l1.setBorder(new ComponentTitledBorder(c, l1, eb));
}}
-&jnlp;
-&jar;
-&zip;

**解説 [#q5789869]
上記のサンプルでは、[[Santhosh Kumar's Weblog>http://www.jroller.com/page/santhosh]]の[[ComponentTitledBorder>http://www.jroller.com/page/santhosh?entry=component_titled_border]]を利用しています。

SwingUtilities.paintComponentでBorderにコンポーネントを描画しているため、JComboBoxなどが選択されてもイベントが伝わりません。このためComponentTitledBorderでは、マウスリスナーを設定してComponent#dispatchEventメソッドで描画しているコンポーネントにイベントを飛ばしています。

**参考リンク [#d3ff2e40]
-[[ComponentTitledBorder>http://www.jroller.com/page/santhosh?entry=component_titled_border]]

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