Swing/ComponentTitledBorder のバックアップ(No.18)
- バックアップ一覧
- 差分 を表示
- 現在との差分 を表示
- 現在との差分 - 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)
- category: swing folder: ComponentTitledBorder title: BorderにJComponentを配置 tags: [Border, TitledBorder, JCheckBox, JButton] author: aterai pubdate: 2006-04-10T12:01:31+09:00 description: BorderにJCheckBoxやJButtonなどを配置します。 image:
概要
Border
にJCheckBox
やJButton
などを配置します。
Screenshot
Advertisement
サンプルコード
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));
View in GitHub: Java, Kotlin解説
SwingUtilities.paintComponent
でBorder
にコンポーネントを描画- 描画しているだけなので
JComboBox
などのコンポーネントが選択されてもイベントが伝わらない - このためこの
ComponentTitledBorder
ではマウスリスナーを設定してComponent#dispatchEvent
メソッドで描画しているコンポーネントに以下のようにマウスイベントを転送
- 描画しているだけなので
@Override public void mouseClicked(MouseEvent me) {
Component src = me.getComponent();
tgtCmp.dispatchEvent(SwingUtilities.convertMouseEvent(src, me, tgtCmp));
src.repaint();
}
参考リンク
- ComponentTitledBorder
- 参考にしていたSanthosh Kumar's Weblogに接続できなくなっている
- Borderの右下にJComponentを配置
- TitledBorderにタイトル文字列までの内余白を設定する