package test.window;

import java.awt.Color;
import java.awt.EventQueue;
import java.awt.FlowLayout;
import java.awt.Graphics;

import javax.swing.JButton;
import javax.swing.JComboBox;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.UIManager;
import javax.swing.plaf.metal.MetalLookAndFeel;

public class TranslucentWindowTest extends JFrame
{

  public static void main(String[] args) throws Exception
  {
    JFrame.setDefaultLookAndFeelDecorated(true);
    UIManager.setLookAndFeel(new MetalLookAndFeel());    
    EventQueue.invokeLater(() -> new TranslucentWindowTest());      
  }
  
  public TranslucentWindowTest()
  {
    setContentPane(new JPanel() {
      @Override
      protected void paintComponent(Graphics g)
      {
        g.setColor(new Color(0x40000000, true));
        g.fillRect(0, 0, getWidth(), getHeight());
        g.setColor(Color.BLUE);
        g.fillRect(50, 50, getWidth()-100, getHeight()-100);
        super.paintComponent(g);
      }
    });
    ((JPanel)getContentPane()).setOpaque(false);
    setLayout(new FlowLayout());           
    add(new JButton("Button A"));    
    add(new JComboBox(new String[] {"Item A", "Item B", "Item C", "Item D", "Item E", "Item F"}));    
    
    setTitle(getClass().getSimpleName());
    setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    setSize(800, 600);    
    setLocationRelativeTo(null);

    // make window translucent
    setBackground(new Color(0, 0, 0, 0));
    setVisible(true);
  }
    
}
