1
package shen;
import java.awt.EventQueue;
import javax.swing.JFrame;
import com.sun.awt.AWTUtilities;
public class Frame extends JFrame {
private static final long serialVersionUID = 7517576070147366983L;
public Frame() {
setTitle("PNG透明窗体");
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setUndecorated(true);
setSize(666, 666);
setLocationRelativeTo(null);
AWTUtilities.setWindowOpaque(this, false);
setContentPane(new Panel());
addMouseListener(new MoveWindow(this));
}
public static void main(String[] args) {
EventQueue.invokeLater(new Runnable() {
@Override
public void run() {
new Frame().setVisible(true);
}
});
}
}
2
package shen;
import java.awt.Graphics;
import java.awt.Image;
import java.io.File;
import java.io.IOException;
import javax.imageio.ImageIO;
import javax.swing.JPanel;
public class Panel extends JPanel{
private Image background;
public Panel(){
try {
background = ImageIO.read(new File("D:\\workspace\\maven\\blessing\\src\\shen\\window.png"));
} catch (IOException e) {
e.printStackTrace();
}
}
protected void paintComponent(Graphics g) {
super.paintComponent(g);
g.drawImage(background,0,0,666,666,null);
}
}
3
package shen;
import java.awt.Point;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;
import javax.swing.JFrame;
public class MoveWindow extends MouseAdapter {
private Point last;
private JFrame frame;
public MoveWindow(JFrame frame) {
this.frame = frame;
}
public void mousePressed(MouseEvent e) {
last = e.getLocationOnScreen();
}
public void mouseReleased(MouseEvent e) {
Point point = e.getLocationOnScreen();
Point fPoint = frame.getLocation();
frame.setLocation(fPoint.x + point.x - last.x, fPoint.y + point.y
- last.y);
last = point;
}
}