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 效果图:


以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持我们。

您可能感兴趣的文章:

  • javascript+HTML5的canvas实现七夕情人节3D玫瑰花效果代码
  • 今天你说520了吗?不仅有php表白书还有java表白神器
  • 20个非常实用的Java程序代码片段
  • java网络编程学习java聊天程序代码分享
  • java文件重命名(文件批量重命名)实例程序代码分享
(0)

相关推荐

  • javascript+HTML5的canvas实现七夕情人节3D玫瑰花效果代码

    本文实例讲述了javascript+HTML5的canvas实现七夕情人节3D玫瑰花效果.分享给大家供大家参考.具体如下: 下面的玫瑰绘制用到了HTML 5的canvas,所以你的浏览器需要支持HTML 5.个人还是比较推荐chrome,这个效果在Firefox下也会稍卡. 效果图: 演示地址:http://demo.jb51.net/js/2015/js-flower-canvas.html 具体代码如下: <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML

  • java网络编程学习java聊天程序代码分享

    复制代码 代码如下: package com.neusoft.edu.socket;import java.io.BufferedReader;import java.io.IOException;import java.io.InputStreamReader;import java.io.PrintWriter;import java.net.ServerSocket;import java.net.Socket;/** * 服务器端代码 * 获取客户端发送的信息,显示并且返回对应的回复 *

  • 20个非常实用的Java程序代码片段

    下面是20个非常有用的Java程序片段,希望能对你有用. 1. 字符串有整型的相互转换 String a = String.valueOf(2); //integer to numeric string int i = Integer.parseInt(a); //numeric string to an int 2. 向文件末尾添加内容 BufferedWriter out = null; try { out = new BufferedWriter(new FileWriter("filen

  • 今天你说520了吗?不仅有php表白书还有java表白神器

    先来看看表白神器,点击这里下载,来表白吧! 不如就把这些感性的细枝末节放大吧,用代码写下520的"告白书" "自从遇见了你,就不停地想你. 编一个死循环, 让我们一直走,一直走." "我就是我,是颜色不一样的烟火 每个人都是独一无二的,写给自己的情诗." "我一直在寻找 找到了你 便找到了整个世界" "我是个说谎者 我总是说,我不爱你" "我曾是孤单的飞鸟,飘荡在远方的天空 如今我已飞得太久 才知

  • java文件重命名(文件批量重命名)实例程序代码分享

    首先,查到java里文件重命名的方法为:renameTo(); 我将180张图片放在d:\\backup下,用下面的程序进行重命名: 复制代码 代码如下: public void reName(){        String dir = "D:\\backup\\";        File file = new File(dir);        String fileName[] = file.list();        int number = fileName.length

  • 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.MouseA

  • java版简单的猜数字游戏实例代码

    游戏简述 游戏涉及到game和player两个对象,game会产生介于0-9之间的随机数,下面看看详细的实现过程. 程序逻辑: 1.GameLauncher这个类带有main()方法,是应用程序的入口点 2.main()中会创建出GuessGame对象,并调用她的startGame()方法 3.startGame()方法是游戏的起点,它会创建3个player,然后挑出猜测的随即数字,它会要求player猜测并检查结果,过程会被列出来 类: •GameLauncher.class •GuessGa

  • java版十大排序经典算法:完整代码

    目录 十大排序算法对比 冒泡排序 完整代码: 测试代码: 运行结果: 快速排序 完整代码: 总结 十大排序算法对比 关于最后一列的稳定性,我稍微解释下,例如对序列:1 2 4 2 6 排序,序列中存在两个2,如果我们把这两个2标记上(让他俩不同),排序之后,前面的2还在前面,那么就称这种排序是稳定的,反之不稳定. 冒泡排序 简单解释: 原理就如算法名字一样,就像水中的气泡一样,每次我都把最大的或最小的放到最后面,这样总共需要n-1趟即可完成排序,这就是第一层循环,第二次循环就是遍历未被固定的那些

  • java版十大排序经典算法:完整代码(4)

    目录 计数排序 完整代码: 桶排序 完整代码: 基数排序 完整代码: 完整测试类 总结 计数排序 简单解释:这个排序算法看名字也很好理解,就是就是额外找个数组来计数,然后在这个数组从小到大或从大到小把数取出来即可. 完整代码: package com.keafmd.Sequence; /** * Keafmd * * @ClassName: CountSort * @Description: 计数排序 * @author: 牛哄哄的柯南 * @date: 2021-06-24 11:31 */

  • java版十大排序经典算法:完整代码(3)

    目录 归并排序 完整代码: 插入排序 完整代码: 希尔排序 完整代码: 总结 归并排序 简单解释:该算法是采用分治法,把数组不断分割,直至成为单个元素,然后比较再合并(合并的过程就是两部分分别从头开始比较,取出最小或最大元素的放到新的区域内,继续取两部分中最大或最小的元素,直到这两部分合并完,最后所有的都合并完,最后形成完整的有序序列) 完整代码: package com.keafmd.Sequence; /** * Keafmd * * @ClassName: MergeSort * @Des

  • java版十大排序经典算法:完整代码(2)

    目录 快速排序 完整代码: 直接选择排序 完整代码: 堆排序 完整代码: 总结 快速排序 简单解释: 快速排序就是每次找一个基点(第一个元素),然后两个哨兵,一个从最前面往后走,一个从最后面往前面走,如果后面那个哨兵找到了一个比基点大的数停下来,前面那个哨兵找到比基点大的数停下来,然后交换两个哨兵找到的数,如果找不到最后两个哨兵就会碰到一起就结束,最后交换基点和哨兵相遇的地方的元素,然后就将一个序列分为比基点小的一部分和比基点大的一部分,然后递归左半部分和右半部分,最后的结果就是有序的了. 完整

  • 用GUI实现java版贪吃蛇小游戏

    本文实例为大家分享了java版贪吃蛇小游戏的具体代码,供大家参考,具体内容如下 项目结构 新建一个JFrame窗口,作为程序入口 public class GameStart{ public static void main(String[] args) { JFrame jFrame = new JFrame(); jFrame.setBounds(100,100,900,720); jFrame.setDefaultCloseOperation(WindowConstants.EXIT_ON

  • Java版C语言版简单使用静态语言实现动态数组的方法

    动态语言相对于静态语言的一个优势,就是数组可以不需要预先确定大小,对于一些数组长度不确定的场景下是非常有用的.像PHP,只需要声明一下数组 $arr = array() 然后就可以直接 $arr[] = 1,$arr[] = 2,$arr[] = 3...这样一直加元素了,删除一个元素就直接使用unset($arr[1]),元素的空间就被释放了,而C和JAVA原生的数组就没有这么方便,声明的时候就必须先预先确定长度,由编译器分配相应的内存空间.不过通过一些巧妙的做法,也是可以实现一样的功能的,这

  • 自己动手写一个java版简单云相册

    动手写一个java版简单云相册,实现的功能是: 用户可以一次上传一个至多个文件. 用户可以下载其他人上传的图片. 用户可以查看其他所有人的图片. 用户只能删除通过自己IP上传的图片. 用到的技术: 文件上传下载.设计模式.Dom4j.xPath等. 先看下2个页面: 源代码: web.xml: <?xml version="1.0" encoding="UTF-8"?> <web-app version="3.0" xmlns=

  • Java版水果管理系统源码

    水果管理系统Java版分享给大家. 主类 FruitsDemo /** * 功能: * 1. 查看所有的水果 * 2. 添加新的水果(添加的时候判断水果名是否有重复) * 3. 对所有的水果进行排序(价格排序.库存排序) * 4. 删除指定的水果 * 5. 退出系统 * * 注意: * 1. 每种水果都必须有水果id,水果名,水果数量,水果价格 * 2. 添加水果时,要由用户输入水果名.数量和价格 * 3. 删除水果时要二次确认 * * 评分依据: 功能实现的情况,代码规范性(命名规范.格式规范

随机推荐