给爱人的玫瑰花表白程序代码--Java版

1 书写表白语句的frame(渐入功能)

package com.wanju.blessing;

import java.awt.Color;
import java.awt.Container;
import java.awt.Dimension;
import java.awt.Font;
import java.awt.Graphics;
import java.awt.Image;
import java.awt.Toolkit;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;
import java.net.URL;

import javax.swing.ImageIcon;
import javax.swing.JFrame;
import javax.swing.JPanel;

import shen.Panel;

import com.sun.awt.AWTUtilities;


public class ShowFrame extends JFrame {

	public ShowFrame() {
		this.setSize(600, 500);

		Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize();
		Dimension frameSize = this.getSize();
		this.setUndecorated(true);
		this.setLocation((screenSize.width - frameSize.width) / 2,
				(screenSize.height - frameSize.height) / 2);
		this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		Container container = this.getContentPane();
//		AWTUtilities.setWindowOpaque(this, true);
		AWTUtilities.setWindowOpacity(this, 0.01f);
		container.add(new MyPanel(this));
		this.setBackground(null);
		this.setVisible(true);
		new FadeOut(this).start();
	}

	public static void main(String[] args) {
		ShowFrame showFrame = new ShowFrame();
	}
}
class MyPanel extends JPanel{
	private Image background;
	JFrame frame;
	public MyPanel(final JFrame frame){
		this.frame = frame;
		try {
			URL url=Panel.class.getResource("a.jpg");  
			ImageIcon icon = new ImageIcon(url);
	        background = icon.getImage() ;
//			background = ImageIO.read(new File("D:\\workspace\\maven\\blessing\\src\\shen\\b.jpg"));
			this.addMouseListener(new MouseAdapter() {
				@Override
				public void mouseClicked(MouseEvent e) {
					super.mouseClicked(e);
//					new FadeOut(MyPanel.this.frame).start();
					frame.setVisible(false);
					frame.dispose();
				}
			});
		} catch (Exception e) {
			e.printStackTrace();
		}
	}
	protected void paintComponent(Graphics g) {
		super.paintComponent(g);
		g.drawImage(background,0,0,666,666,null);
		g.setColor(Color.red);
		g.setFont(new Font("", Font.BOLD, 15));
		
		
		
		
		g.drawString("祝愿宝儿永远幸福的像花儿一样", 60, 280);
	}
	
	
}
class FadeOut extends Thread {
    private JFrame wnd;
    public FadeOut(JFrame wnd) {
        this.wnd = wnd;
    }
    public void run() {
        try {
            for (int i = 0; i < 50; i++) {
            	Thread.sleep(50);
            	AWTUtilities.setWindowOpacity(wnd, i / 50f);
            }
            
        } catch (Exception ex) {
            ex.printStackTrace();
        }
    }
}

2 玫瑰花frame

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(this));
		addMouseListener(new MoveWindow(this));
	}

	public static void main(String[] args) {
		EventQueue.invokeLater(new Runnable() {
			@Override
			public void run() {
				new Frame().setVisible(true);
			}
		});
	}
}

3

package shen;

import java.awt.Graphics;
import java.awt.Image;
import java.awt.Point;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;
import java.net.URL;

import javax.swing.ImageIcon;
import javax.swing.JFrame;
import javax.swing.JPanel;

import com.sun.awt.AWTUtilities;

import shen.Panel.FadeOut;

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

}

4

package shen;

import java.awt.Graphics;
import java.awt.Image;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;
import java.net.URL;

import javax.swing.ImageIcon;
import javax.swing.JFrame;
import javax.swing.JPanel;

import com.sun.awt.AWTUtilities;
import com.wanju.blessing.ShowFrame;

public class Panel extends JPanel{

	private Image background;
	JFrame frame = null;
	public JFrame getFrame() {
		return frame;
	}

	public void setFrame(JFrame frame) {
		this.frame = frame;
	}

	public Panel(JFrame frame){
		this.frame = frame;
		try {
//			background = ImageIO.read(new File("D:\\workspace\\maven\\blessing\\src\\shen\\window.png"));
//			background = ImageIO.read(new File("D:\\workspace\\maven\\blessing\\src\\shen\\b.jpg"));
			URL url=Panel.class.getResource("c.jpg");  
			ImageIcon icon = new ImageIcon(url);
	        background = icon.getImage() ;
//			background = ImageIO.read(new File("D:\\workspace\\maven\\blessing\\src\\shen\\b.jpg"));
			this.addMouseListener(new MouseAdapter() {
				@Override
				public void mouseClicked(MouseEvent e) {
					super.mouseClicked(e);
					new FadeOut(Panel.this.frame).start();
					
				}
			});
		} catch (Exception e) {
			e.printStackTrace();
		}
	}
	
	 class FadeOut extends Thread {
        private JFrame wnd;
        public FadeOut(JFrame wnd) {
            this.wnd = wnd;
        }
        public void run() {
            try {
                for (int i = 50; i > 0; i--) {
                    Thread.sleep(50);
                    AWTUtilities.setWindowOpacity(wnd, i / 50f);
                }
            } catch (Exception ex) {
                ex.printStackTrace();
            }
            wnd.setVisible(false);
            wnd.dispose();
            new ShowFrame();
        }
    }
	
	protected void paintComponent(Graphics g) {
		super.paintComponent(g);
		g.drawImage(background,0,0,666,666,null);
	}
}

5 效果图:



评论 13
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

静山晚风

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值