Newer
Older
Sample01 / src / mypackage / TransparentWindowTest.java
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();
    }
}