Swing/OverlayLayout のバックアップの現在との差分(No.3)
- バックアップ一覧
- 差分 を表示
- 現在との差分 - Visual を表示
- ソース を表示
- バックアップ を表示
- Swing/OverlayLayout へ行く。
- 1 (2008-01-17 (木) 20:39:30)
- 2 (2008-10-29 (水) 18:45:42)
- 3 (2009-08-20 (木) 16:38:06)
- 4 (2011-03-20 (日) 16:55:33)
- 5 (2011-05-31 (火) 03:18:55)
- 6 (2013-06-12 (水) 15:37:05)
- 7 (2014-10-24 (金) 16:28:49)
- 8 (2015-03-12 (木) 15:07:29)
- 9 (2016-12-24 (土) 20:35:55)
- 10 (2017-04-04 (火) 14:17:08)
- 11 (2017-12-08 (金) 16:16:09)
- 12 (2019-08-15 (木) 14:37:53)
- 13 (2021-04-08 (木) 13:27:25)
- 追加された行はこの色です。
- 削除された行はこの色です。
TITLE:OverlayLayoutの使用 #navi(../) RIGHT:Posted by [[terai]] at 2008-01-14 *OverlayLayoutの使用 [#y05c0630] OverlayLayoutを使用し、JButtonを重ねて配置します。 --- category: swing folder: OverlayLayout title: OverlayLayoutの使用 tags: [OverlayLayout, LayoutManager, JButton] author: aterai pubdate: 2008-01-14T17:09:44+09:00 description: OverlayLayoutを使用し、JButtonを重ねて配置します。 image: https://lh6.googleusercontent.com/_9Z4BYR88imo/TQTQqzbG85I/AAAAAAAAAf8/GAYWzSVrHvg/s800/OverlayLayout.png --- * 概要 [#summary] `OverlayLayout`を使用し、`JButton`を重ねて配置します。 -&jnlp; -&jar; -&zip; #download(https://lh6.googleusercontent.com/_9Z4BYR88imo/TQTQqzbG85I/AAAAAAAAAf8/GAYWzSVrHvg/s800/OverlayLayout.png) #screenshot **サンプルコード [#ece74623] #code{{ * サンプルコード [#sourcecode] #code(link){{ JButton b1 = new JButton(); JButton b2 = new JButton(); b1.setLayout(new OverlayLayout(b1)); Insets i = b1.getBorder().getBorderInsets(b1); b1.setBorder(BorderFactory.createEmptyBorder(i.top,i.left,i.bottom,4)); Insets i = b1.getInsets(); b1.setBorder(BorderFactory.createEmptyBorder(i.top, i.left, i.bottom, 4)); b1.setAction(new AbstractAction("OverlayLayoutButton") { public void actionPerformed(ActionEvent e) { java.awt.Toolkit.getDefaultToolkit().beep(); @Override public void actionPerformed(ActionEvent e) { Toolkit.getDefaultToolkit().beep(); } }); JButton b2 = new JButton() { private final Dimension dim = new Dimension(120, 24); @Override public Dimension getPreferredSize() { return dim; } @Override public Dimension getMaximumSize() { return getPreferredSize(); } @Override public Dimension getMinimumSize() { return getPreferredSize(); } }; b2.setAction(new AbstractAction("▼") { public void actionPerformed(ActionEvent e) { @Override public void actionPerformed(ActionEvent e) { System.out.println("sub"); } }); Dimension dim = new Dimension(64, 24); b2.setMaximumSize(dim); b2.setPreferredSize(dim); b2.setMinimumSize(dim); b2.setAlignmentX(1.0f); b2.setAlignmentY(1.0f); b2.setAlignmentX(Component.RIGHT_ALIGNMENT); b2.setAlignmentY(Component.BOTTOM_ALIGNMENT); b1.add(b2); }} **解説 [#z79707d9] 上記のサンプルでは、JButtonに OverlayLayout を使って、別のJButtonを重ねて右下に配置しています。 * 解説 [#explanation] - 親`JButton`をコンテナとして別の子`JButton`を追加 - 親`JButton`のレイアウトとして`OverlayLayout`を設定し、`setAlignmentX(...)`などで子`JButton`が右下に配置されるよう設定 **参考リンク [#y9ab3aa1] -[[JButtonの形を変更>Swing/RoundButton]] * 参考リンク [#reference] - [[OverlayLayoutで複数のJButtonを重ねて複合ボタンを作成>Swing/CompoundButton]] - [https://docs.oracle.com/javase/tutorial/uiswing/layout/box.html#features Box Layout Features] - [[JTextAreaをキャプションとして画像上にスライドイン>Swing/EaseInOut]] **コメント [#qfacad78] - ボタンサイズの指定方法を変更しました。 -- [[terai]] &new{2008-01-17 (木) 20:39:53}; - スクリーンショットなどを更新。 -- [[terai]] &new{2008-10-29 (水) 18:51:52}; * コメント [#comment] #comment - ボタンサイズの指定方法を変更しました。 -- &user(aterai); &new{2008-01-17 (木) 20:39:53}; - スクリーンショットなどを更新。 -- &user(aterai); &new{2008-10-29 (水) 18:51:52}; #comment