import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.Dimension;
import java.awt.GradientPaint;
import java.awt.Graphics;
import java.awt.Graphics2D;
import java.awt.Paint;
import java.awt.Point;
import java.awt.Shape;
import java.awt.event.ComponentEvent;
import java.awt.event.ComponentListener;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;
import java.awt.event.MouseMotionAdapter;
import java.awt.geom.RoundRectangle2D;
import javax.swing.JFrame;
import javax.swing.JPanel;
public class MovePanel extends JFrame implements ComponentListener {
/**
*
*/
private static final long serialVersionUID = 1L;
public JPanel jPanel1 = new JPanel(){
/* (non-Javadoc)
* @see javax.swing.JComponent#paintComponent(java.awt.Graphics)
*/
protected void paintComponent(Graphics g) {
if (g instanceof Graphics2D) {
Paint p = new GradientPaint(getWidth(), getHeight(), new Color(221, 221, 221, 50), 0.0f, 0.0f,
new Color(221, 221, 221, 150), true);
Graphics2D g2d = (Graphics2D) g;
g2d.setPaint(p);
g2d.fillRect(0, 0, getWidth(), getHeight());
} else {
super.paintComponent(g);
}
}
};
/* move by mouse pointer */
Point mainFrameLocation = new Point(0, 0);
Point mouseClickedLocation = new Point(0, 0);
public MovePanel() {
// jPanel1.setOpaque(true);
addMouseListener(new FrameMove_mouseAdapter(this));
addMouseMotionListener(new FrameMove_mouseMotionAdapter(this));
/* root frame */
setDefaultCloseOperation(javax.swing.WindowConstants.DISPOSE_ON_CLOSE);
setMinimumSize(new Dimension(200, 200));
setUndecorated(true);
getContentPane().add(jPanel1, BorderLayout.CENTER);
setLocationRelativeTo(null);
addComponentListener(this);
}
public static void main(String[] args) {
java.awt.EventQueue.invokeLater(new Runnable() {
public void run() {
MovePanel mainFrame = new MovePanel();
mainFrame.setVisible(true);
com.sun.awt.AWTUtilities.setWindowOpacity(mainFrame, 80.0f / 100.0f);
}
});
}
public void componentHidden(ComponentEvent arg0) {
// TODO Auto-generated method stub
}
public void componentMoved(ComponentEvent arg0) {
// TODO Auto-generated method stub
}
public void componentResized(ComponentEvent arg0) {
// TODO Auto-generated method stub
Shape shape = new RoundRectangle2D.Float(0, 0, getWidth(),
getHeight(), 20, 20);
com.sun.awt.AWTUtilities.setWindowShape(this, shape);
}
public void componentShown(ComponentEvent arg0) {
// TODO Auto-generated method stub
}
}
/**
* @author tobby48 2009. 07. 22
*/
class FrameMove_mouseAdapter extends MouseAdapter {
private MovePanel frame;
FrameMove_mouseAdapter(MovePanel mainframe) {
this.frame = mainframe;
}
public void mousePressed(MouseEvent e) {
frame.mouseClickedLocation.x = e.getX();
frame.mouseClickedLocation.y = e.getY();
}
public void mouseReleased(MouseEvent e) {
}
}
/**
* @author tobby48 2009. 07. 22
*/
class FrameMove_mouseMotionAdapter extends MouseMotionAdapter {
private MovePanel frame;
FrameMove_mouseMotionAdapter(MovePanel mainframe) {
this.frame = mainframe;
}
public void mouseMove(MouseEvent e) {}
public void mouseDragged(MouseEvent e) {
frame.setLocation(e.getLocationOnScreen().x - frame.mouseClickedLocation.x,
e.getLocationOnScreen().y - frame.mouseClickedLocation.y);
}
}