TITLE:JComponentの形状を変更する

Usage: #tags(tags)
Posted by at 2008-11-17

JComponentの形状定義を変更する

コンポーネントの形状を画像の不透明領域に合わせて変更します。

  • &jnlp;
  • &jar;
  • &zip;
MoveNonRectangularImage.png

サンプルコード

JLabel label = new JLabel(dukeIcon) {
  @Override public boolean contains(int x, int y) {
    return super.contains(x, y) && ((image.getRGB(x, y) >> 24) & 0xff) > 0;
  }
};
View in GitHub: Java, Kotlin

解説

上記のサンプルでは、非矩形画像の不透明部分だけマウスでドラッグできるように、マウス処理にUIが使用する contains メソッドをオーバーライドし、透明部分がJLabelの形状に含まれないようにしています。

参考リンク

コメント