프레임 이동, 투명, 모양 정의한 예제소스 > 오픈소스 | IOTsw_u2 U2 Project
오픈소스

JAVA 프레임 이동, 투명, 모양 정의한 예제소스

본문

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);
    }
}

 

댓글목록

프레임 이동, 투명, 모양 정의한 예제소스
이어쓰기 1.A 설연휴 이벤트행사 안내(관전가능)
이 원글에 이어쓰기

오픈소스 목록

Total 23건 1 페이지
게시물 검색

IOTsw_u2 정보

회사 . U2
주소 . 어느별 하늘 아래에 있것지요
사업자 등록번호 . 백수임 대표 . 김씨 전화 . 02-123-4567 팩스 . 팩스없음
통신판매업신고번호 . 낼할께 개인정보관리책임자 . 김씨가 알아서 함 부가통신사업신고번호 신고안함
Copyright © 2001-2013 U2. All Rights Reserved.
닫기