package mypackage;
import java.awt.Color;
import java.awt.Dimension;
import java.awt.Graphics;
import java.awt.Image;
import java.awt.Point;
import java.awt.event.MouseEvent;
import java.awt.event.MouseListener;
import java.awt.event.MouseMotionListener;
import javax.swing.JWindow;
public class TransparentWindowTest extends JWindow implements MouseListener, MouseMotionListener {
Image buf;
Graphics gra;
public TransparentWindowTest(){
addMouseListener(this);
addMouseMotionListener(this);
}
// public void init(){
// }
public Dimension getPreferredSize(){
return new Dimension(300,200);
}
public void paint(Graphics g){
if (buf == null) {
Dimension d = getSize();
buf = createImage(d.width, d.height);
}
Dimension r = getSize();
gra = buf.getGraphics();
gra.setColor(new Color(0,0,0,0));
gra.fillRect(0,0,r.width,r.height);
// super.paint(g);
gra.setColor(Color.black);
gra.drawString(getLocation().toString(), 100, 100);
gra.drawRect(0,0,r.width-1,r.height-1);
g.drawImage(buf,0,0,this);
}
@Override
public void mouseClicked(MouseEvent e) {
System.exit(0);
}
Point pressP, pressLoc;
int diffx, diffy;
@Override
public void mousePressed(MouseEvent e) {
pressP = e.getLocationOnScreen();
pressLoc = getLocationOnScreen();
diffx = pressP.x - pressLoc.x;
diffy = pressP.y - pressLoc.y;
}
@Override
public void mouseReleased(MouseEvent e) {
// TODO Auto-generated method stub
}
@Override
public void mouseEntered(MouseEvent e) {
// TODO Auto-generated method stub
}
@Override
public void mouseExited(MouseEvent e) {
// TODO Auto-generated method stub
}
@Override
public void mouseDragged(MouseEvent e) {
Point nowP = e.getLocationOnScreen();
System.out.println(nowP);
setLocation(nowP.x - diffx, nowP.y - diffy);
repaint();
}
@Override
public void mouseMoved(MouseEvent e) {
// TODO Auto-generated method stub
}
public static void main(String[] args) {
TransparentWindowTest tw = new TransparentWindowTest();
tw.setSize(300,200);
tw.setBackground(new Color(100,0,0,0));
tw.setVisible(true);
// tw.init();
}
}