Javaで非矩形ウィンドウ

いつの間にかできるようになっていたのですね。知りませんでした。

スクリーンショット

sticky

ソースコード

import java.awt.Color;
import java.awt.Dimension;
import java.awt.Graphics;
import java.awt.geom.RoundRectangle2D;

import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.UIManager;
import javax.swing.UnsupportedLookAndFeelException;
import javax.swing.WindowConstants;

import com.sun.awt.AWTUtilities;

public class Main {
    public static void main(String[] args) throws ClassNotFoundException, InstantiationException,
            IllegalAccessException, UnsupportedLookAndFeelException {
        UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());
        final JFrame frame = new JFrame("ふせん");
        frame.setDefaultCloseOperation(WindowConstants.DISPOSE_ON_CLOSE);
        frame.setLocationByPlatform(true);
        final JPanel panel = new JPanel() {
            @Override
            protected void paintComponent(Graphics g) {
                super.paintComponent(g);
                g.drawString("てすと", 20, 20);
            }
        };
        panel.setBackground(Color.YELLOW);
        panel.setPreferredSize(new Dimension(100, 100));
        frame.add(panel);
        frame.setUndecorated(true);
        frame.pack();
        AWTUtilities.setWindowOpacity(frame, .5f);
        AWTUtilities.setWindowShape(frame, new RoundRectangle2D.Double(0, 0, 100, 100, 50, 50));
        frame.setVisible(true);
    }
}
広告

コメントを残す

以下に詳細を記入するか、アイコンをクリックしてログインしてください。

WordPress.com ロゴ

WordPress.com アカウントを使ってコメントしています。 ログアウト / 変更 )

Twitter 画像

Twitter アカウントを使ってコメントしています。 ログアウト / 変更 )

Facebook の写真

Facebook アカウントを使ってコメントしています。 ログアウト / 変更 )

Google+ フォト

Google+ アカウントを使ってコメントしています。 ログアウト / 変更 )

%s と連携中