http://itpro.nikkeibp.co.jp/article/COLUMN/20111222/377256/ !透明フレームをサポートしているかチェックする GraphicsEnvironment env = GraphicsEnvironment.getLocalGraphicsEnvironment(); GraphicsDevice device = env.getDefaultScreenDevice(); // 透明フレームをサポートとしているかチェックする if (!device.isWindowTranslucencySupported(WindowTranslucency.TRANSLUCENT)) { System.err.println("Don't Support Translucent Frame"); return; } !半透明のフレームを表示させる JFrame frame = new JFrame(); frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); frame.setSize(400, 300); // タイトルバーを表示しない frame.setUndecorated(true); // 透明度を設定 frame.setOpacity(0.5f); JLabel label = new JLabel("Translucent Frame!", JLabel.CENTER); label.setFont(new Font(Font.SANS_SERIF, Font.BOLD, 24)); frame.add(label); frame.setVisible(true); !透明フレームに非透明のコンポーネントを表示させる JFrame frame = new JFrame(); frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); frame.setSize(400, 300); // タイトルバーを表示しない frame.setUndecorated(true); // フレームを透明にする frame.setBackground(new Color(0, 0, 0, 0)); // 背景色が透明色から非透明色にグラデーションするパネル JPanel panel = new JPanel() { @Override protected void paintComponent(Graphics g) { Graphics2D g2d = (Graphics2D)g; Color start = new Color(240, 240, 240, 0); Color end = new Color(240, 240, 255, 255); // グラデーションでペイントする Paint paint = new GradientPaint(0.0f, 0.0f, start, 0.0f, getHeight(), end); g2d.setPaint(paint); g2d.fillRect(0, 0, getWidth(), getHeight()); } }; panel.setLayout(new BorderLayout()); frame.add(panel); // 非透明のラベル JLabel label = new JLabel("Gradient Painted Frame!", JLabel.CENTER); label.setFont(new Font(Font.SANS_SERIF, Font.BOLD, 24)); panel.add(label); frame.setVisible(true); !非矩形フレーム JFrame frame = new JFrame(); frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); frame.setBounds(new Rectangle(200, 100, 400, 300)); // タイトルバーを表示しない frame.setUndecorated(true); // シェイプを設定 Shape shape = new RoundRectangle2D.Float(0, 0, 400, 300, 40, 40); frame.setShape(shape); JLabel label = new JLabel("Non-Rectangle Frame!", JLabel.CENTER); label.setFont(new Font(Font.SANS_SERIF, Font.BOLD, 24)); frame.add(label); frame.setVisible(true); {{category2 プログラミング言語,Java}}