JAVA桌面宠物

忄辰桌面宠物【静态】+【动态】

最近寒假刚刚开始,然后时间很多,就想做一款桌面宠物,但是本人能力有限,只能做个大概的,其实我觉得做得也挺好看的是吧QAQ,想要详细做动态的话可以参考链接2,我做的比较简单
感谢大佬的这两片文章: 连接1.连接2
第一步:制作背景透明化
第二步:功能及代码【附图片】
第三步:动态代码片【附效果图】

第一步

我们需要有一个背景透明化的图片,我是用PS的,也是第一次用,如果大佬有更好的办法可以帮助一下我。。。
首先我们需要准备一张图片
比如进击的巨人 (三笠)百度找的图
图片是网上找的
然后打开我们的PS应用,打开这张图片
在这里插入图片描述
选择这个魔法棒,点击空白处键盘上的delete
效果如下
在这里插入图片描述
然后我们就可以得到一张背景透明化的图片了啊哈哈
可以调整一下大小,按照你们想要的来调整就OK

第二步

我们现在就开始写代码,写的比较乱,见谅,这里有的是直接搬运链接的代码,如果想要学习可以去原链接看
主函数

//创建一个JFrame
		JFrame frame=new JFrame("桌面宠物");
		frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		//框体透明
		frame.setUndecorated(true);//取消标题栏
        frame.setBackground(new Color(0,0,0,0));//背景透明
        //增加托盘图标
        setTray(frame);
        //设置位置并显示在最前端
        frame.setAlwaysOnTop(true);
        //设置取消窗体任务栏图标
        frame.setType(JFrame.Type.UTILITY);
		frame.setVisible(true);
		frame.setSize(200,200);
		frame.setLocation(1670,20);
		//运行时间
		jishiqi();
		//全局位置变量,用于鼠标在窗口上的位置
		Point origin = new Point();
		
		//添加图标信息
		JLabel label=new JLabel();
		ImageIcon icon=new ImageIcon("tupian\\三笠.png");//图片的路径
		int chongwuwidth=icon.getIconWidth();
		int chongwuheight=icon.getIconHeight();
		icon.setImage(icon.getImage().getScaledInstance(chongwuwidth, chongwuheight, Image.SCALE_AREA_AVERAGING));
		label.setBounds(frame.getX(), frame.getY(), chongwuwidth, chongwuheight);
		label.setIcon(icon);
		frame.add(label);
		
		//添加窗体监听器
		frame.addMouseListener(new MouseAdapter() {
   
			// 按下(mousePressed 不是点击,而是鼠标被按下没有抬起)
			public void mousePressed(MouseEvent e)
			{
   
				origin.x=e.getX();
				origin.y=e.getY();
			}
			public void mouseClicked(MouseEvent e)
			{
   
				if(e.getButton()==MouseEvent.BUTTON3)
					setable(frame,e.getComponent(),e.getX(),e.getY(),label);
			}
		});
		frame.addMouseMotionListener(new MouseMotionListener() {
   
			
			@Override
			public void mouseMoved(MouseEvent e) {
   
				// TODO 自动生成的方法存根				
			}
			
			@Override
			public void mouseDragged(MouseEvent e) {
   
				Point p=frame.getLocation();
				// 窗口当前的位置 + 鼠标当前在窗口的位置 - 鼠标按下的时候在窗口的位置
				frame.setLocation(p.x+e.getX()-origin.x,p.y+e.getY()-origin.y);
			}
		});
		frame.validate();
	}

托盘,可以将你的桌宠图标放在托盘图标里面
在这里插入图片描述
代码如下

private static void setTray(JFrame frame)
{
   
	if(SystemTray.isSupported())//判断系统是否支持系统托盘
	{
   
		SystemTray tray=SystemTray.getSystemTray();//获取当前系统的托盘
		
		//为托盘添加一个右键弹出式菜单
		PopupMenu menu=new PopupMenu();
		
		MenuItem openItem=
评论 10
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值