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

 更新时间:2018年05月04日 14:17:50   作者:瓜瓜东西  
这篇文章主要讲解了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 效果图:


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

相关文章

  • 如何通过properties文件配置web.xml中的参数

    如何通过properties文件配置web.xml中的参数

    这篇文章主要介绍了如何通过properties文件配置web.xml中的参数方法,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2021-08-08
  • Java元注解meta-annotation和依赖注入详解

    Java元注解meta-annotation和依赖注入详解

    这篇文章主要给大家介绍了关于Java元注解meta-annotation和依赖注入的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-12-12
  • 一篇文章让你三分钟学会Java枚举

    一篇文章让你三分钟学会Java枚举

    这篇文章主要给大家介绍了如何通过三分钟学会Java枚举的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-12-12
  • Java怎么获取多网卡本地ip

    Java怎么获取多网卡本地ip

    java获取本地ip,获取多网卡本地ip在项目中经常会用到,下面小编把代码分享到脚本之家平台,供大家参考
    2016-03-03
  • Java主流压缩解压工具对比、用法与选取详解

    Java主流压缩解压工具对比、用法与选取详解

    开发过程中可能会用到压缩文件的需求,下面这篇文章主要给大家介绍了关于Java主流压缩解压工具对比、用法与选取的相关资料,文中通过代码介绍的非常详细,需要的朋友可以参考下
    2024-01-01
  • Java收集的雪花算法代码详解

    Java收集的雪花算法代码详解

    这篇文章主要介绍了Java实现雪花算法的详细代码,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2021-10-10
  • 谈谈Spring Boot 数据源加载及其多数据源简单实现(小结)

    谈谈Spring Boot 数据源加载及其多数据源简单实现(小结)

    这篇文章主要介绍了谈谈Spring Boot 数据源加载及其多数据源简单实现,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2019-04-04
  • 深入探究Java中的类加载机制

    深入探究Java中的类加载机制

    这篇文章主要给大家介绍了关于Java中类加载机制的相关资料,JVM将类加载过程分为三个步骤:装载(Load)、链接(Link)和初始化(Initialize),本文通过示例代码介绍的非常详细,需要的朋友可以参考下
    2021-09-09
  • 详解Java Spring各种依赖注入注解的区别

    详解Java Spring各种依赖注入注解的区别

    这篇文章主要介绍了详解Java Spring各种依赖注入注解的区别的相关资料,需要的朋友可以参考下
    2016-03-03
  • 浅析java消息摘要与数字签名

    浅析java消息摘要与数字签名

    这篇文章给大家分析了关于java消息摘要与数字签名的相关知识点内容,有兴趣的朋友们可以学习下。
    2018-08-08

最新评论