Swing/ComponentTitledBorder のバックアップ(No.10)
- バックアップ一覧
- 差分 を表示
- 現在との差分 を表示
- 現在との差分 - Visual を表示
- ソース を表示
- Swing/ComponentTitledBorder へ行く。
- 1 (2006-04-10 (月) 12:01:31)
- 2 (2006-04-12 (水) 19:39:03)
- 3 (2006-07-25 (火) 17:23:23)
- 4 (2006-09-12 (火) 16:13:59)
- 5 (2006-09-12 (火) 17:24:39)
- 6 (2007-08-10 (金) 12:34:14)
- 7 (2009-02-27 (金) 13:22:06)
- 8 (2009-09-23 (水) 18:55:34)
- 9 (2009-09-24 (木) 11:12:25)
- 10 (2011-05-19 (木) 19:54:52)
- 11 (2011-11-21 (月) 21:24:47)
- 12 (2013-03-11 (月) 18:31:47)
- 13 (2015-09-29 (火) 20:06:43)
- 14 (2017-04-10 (月) 16:25:26)
- 15 (2018-04-04 (水) 15:32:31)
- 16 (2020-04-03 (金) 17:28:54)
- 17 (2021-10-10 (日) 19:49:51)
- 18 (2022-06-12 (日) 21:16:01)
- 19 (2022-10-07 (金) 14:57:33)
- 20 (2024-11-03 (日) 19:59:28)
TITLE:BorderにJComponentを配置
Posted by aterai at 2006-04-10
BorderにJComponentを配置
BorderにJCheckBoxやJButtonなどを配置します。Santhosh Kumar's WeblogのComponentTitledBorderを利用しています。
- &jnlp;
- &jar;
- &zip;
サンプルコード
JCheckBox c = new JCheckBox("CheckBox", true);
c.setFocusPainted(false);
JLabel l1 = new JLabel("adfasdfasdfa");
Border eb = BorderFactory.createEtchedBorder();
l1.setBorder(new ComponentTitledBorder(c, l1, eb));
解説
上記のサンプルは、Santhosh Kumar's WeblogのComponentTitledBorderを参考にして作成しています。
SwingUtilities.paintComponentでBorderにコンポーネントを描画しているため、JComboBoxなどが選択されてもイベントが伝わりません。このためComponentTitledBorderでは、マウスリスナーを設定してComponent#dispatchEventメソッドで描画しているコンポーネントにイベントを飛ばしています。
public void mouseClicked(MouseEvent me) {
Component src = me.getComponent();
tgtCmp.dispatchEvent(SwingUtilities.convertMouseEvent(src, me, tgtCmp));
src.repaint();
}