透明图片做背景和形状的方法swing

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

}


评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值