Swing/OverlayLayout のバックアップの現在との差分(No.3)
TITLE:OverlayLayoutの使用
Posted by terai at 2008-01-14
OverlayLayoutの使用
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:
概要
OverlayLayout
を使用し、JButton
を重ねて配置します。
- &jnlp;
- &jar;
- &zip;
Screenshot
Advertisement
#screenshot
サンプルコード
#spanend
#spanadd
* サンプルコード [#sourcecode]
#spanend
#spanadd
#code(link){{
#spanend
JButton b1 = new JButton();
JButton b2 = new JButton();
b1.setLayout(new OverlayLayout(b1));
#spandel
Insets i = b1.getBorder().getBorderInsets(b1);
#spanend
#spandel
b1.setBorder(BorderFactory.createEmptyBorder(i.top,i.left,i.bottom,4));
#spanend
#spanadd
Insets i = b1.getInsets();
#spanend
#spanadd
b1.setBorder(BorderFactory.createEmptyBorder(i.top, i.left, i.bottom, 4));
#spanend
b1.setAction(new AbstractAction("OverlayLayoutButton") {
public void actionPerformed(ActionEvent e) {
java.awt.Toolkit.getDefaultToolkit().beep();
@Override public void actionPerformed(ActionEvent e) {
Toolkit.getDefaultToolkit().beep();
}
});
#spanadd
JButton b2 = new JButton() {
#spanend
private final Dimension dim = new Dimension(120, 24);
@Override public Dimension getPreferredSize() {
return dim;
}
#spanadd
#spanend
@Override public Dimension getMaximumSize() {
return getPreferredSize();
}
#spanadd
#spanend
@Override public Dimension getMinimumSize() {
return getPreferredSize();
}
#spanadd
};
#spanend
b2.setAction(new AbstractAction("▼") {
public void actionPerformed(ActionEvent e) {
@Override public void actionPerformed(ActionEvent e) {
System.out.println("sub");
}
});
#spandel
Dimension dim = new Dimension(64, 24);
#spanend
#spandel
b2.setMaximumSize(dim);
#spanend
#spandel
b2.setPreferredSize(dim);
#spanend
#spandel
b2.setMinimumSize(dim);
#spanend
#spandel
b2.setAlignmentX(1.0f);
#spanend
#spandel
b2.setAlignmentY(1.0f);
#spanend
#spanadd
b2.setAlignmentX(Component.RIGHT_ALIGNMENT);
#spanend
#spanadd
b2.setAlignmentY(Component.BOTTOM_ALIGNMENT);
#spanend
b1.add(b2);
解説
上記のサンプルでは、JButtonに OverlayLayout を使って、別のJButtonを重ねて右下に配置しています。解説
- 親
JButton
をコンテナとして別の子JButton
を追加 - 親
JButton
のレイアウトとしてOverlayLayout
を設定し、setAlignmentX(...)
などで子JButton
が右下に配置されるよう設定
参考リンク
参考リンク
コメント
コメント
- ボタンサイズの指定方法を変更しました。 -- aterai
- スクリーンショットなどを更新。 -- aterai