package de.greenwaysystems.stauconCompact.controlServer.test;
import java.awt.AWTException;
import java.awt.BorderLayout;
import java.awt.Dimension;
import java.awt.Rectangle;
import java.awt.Robot;
import java.awt.Toolkit;
import java.awt.event.ComponentEvent;
import java.awt.event.ComponentListener;
import java.awt.image.BufferedImage;
import javax.swing.JFrame;
public class TestTransparentBackground
{
private BufferedImage image;
//own Panel with changeable background
private MyPanel panel;
private JFrame frame;
private BufferedImage area;
public TestTransparentBackground() throws AWTException
{
frame = new JFrame();
frame.setSize(new Dimension(800,600));
frame.setLayout(new BorderLayout());
frame.addComponentListener(componentListener);
frame.setUndecorated(false);
panel = new MyPanel();
frame.add(panel, BorderLayout.CENTER);
//Take Screenshot
Toolkit toolkit = Toolkit.getDefaultToolkit();
Dimension screenSize = toolkit.getScreenSize();
Rectangle screenRect = new Rectangle(screenSize);
// create screen shot
Robot robot = new Robot();
image = robot.createScreenCapture(screenRect);
//get rectangle area from screenshot
area = image.getSubimage(frame.getX(), frame.getY(), frame.getWidth(), frame.getHeight());
panel.setBackground(area, 0.2f);
frame.setVisible(true);
}
/**
* @param args
*/
public static void main(String[] args)
{
try
{
new TestTransparentBackground();
} catch (AWTException e)
{
// TODO Auto-generated catch block
e.printStackTrace();
}
}
//Listener to update background image if frame change position
ComponentListener componentListener = new ComponentListener(){
@Override
public void componentHidden(ComponentEvent e)
{
// TODO Auto-generated method stub
}
@Override
public void componentMoved(ComponentEvent e)
{
if(e.getSource().equals(frame))
{
//get rectangle area from screenshot
area = image.getSubimage(frame.getX(), frame.getY(), frame.getWidth(), frame.getHeight());
panel.setBackground(area, 0.7f);
panel.updateUI();
}
}
@Override
public void componentResized(ComponentEvent e)
{
if(e.getSource().equals(frame))
{
//get rectangle area from screenshot
area = image.getSubimage(frame.getX(), frame.getY(), frame.getWidth(), frame.getHeight());
panel.setBackground(area, 0.7f);
panel.updateUI();
}
}
@Override
public void componentShown(ComponentEvent e)
{
// TODO Auto-generated method stub
}
};
}