概要

OverlayLayoutを使用し、JButtonを重ねて配置します。

サンプルコード

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));
b1.setAction(new AbstractAction("OverlayLayoutButton") {
  @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("▼") {
  @Override public void actionPerformed(ActionEvent e) {
    System.out.println("sub");
  }
});
b2.setAlignmentX(Component.RIGHT_ALIGNMENT);
b2.setAlignmentY(Component.BOTTOM_ALIGNMENT);
b1.add(b2);
view all

解説

上記のサンプルでは、JButtonOverlayLayoutを使って、別のJButtonを重ねて右下に配置しています。

参考リンク

コメント

  • ボタンサイズの指定方法を変更しました。 -- aterai
  • スクリーンショットなどを更新。 -- aterai