Java版給愛人表白的玫瑰花程序代碼
更新時(shí)間:2018年05月04日 14:17:50 作者:瓜瓜東西
這篇文章主要講解了Java版給愛人表白的玫瑰花程序代碼,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,一起跟隨小編過來看看吧
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("祝愿寶兒永遠(yuǎn)幸福的像花兒一樣", 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 效果圖:


以上就是本文的全部內(nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
RocketMQ消息生產(chǎn)者是如何選擇Broker示例詳解
這篇文章主要為大家介紹了RocketMQ消息生產(chǎn)者是如何選擇Broker示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-11-11
Spring中@DependsOn注解的作用及實(shí)現(xiàn)原理解析
這篇文章主要介紹了Spring中@DependsOn注解的作用及實(shí)現(xiàn)原理解析,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2021-03-03
Java實(shí)現(xiàn)Map集合遍歷的四種常見方式與用法分析
這篇文章主要介紹了Java實(shí)現(xiàn)Map集合遍歷的四種常見方式與用法,結(jié)合實(shí)例形式較為詳細(xì)的分析了java針對(duì)Map集合鍵值對(duì)遍歷的常見使用技巧與相關(guān)操作注意事項(xiàng),需要的朋友可以參考下2018-01-01
spring無法讀取properties文件數(shù)據(jù)問題詳解
這篇文章主要介紹了spring無法讀取properties文件數(shù)據(jù)問題詳解,需要的朋友可以參考下2020-02-02
特殊數(shù)據(jù)結(jié)構(gòu)之使用Java實(shí)現(xiàn)單調(diào)棧示例
這篇文章主要為大家介紹了特殊數(shù)據(jù)結(jié)構(gòu)之使用Java實(shí)現(xiàn)單調(diào)棧示例,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-09-09
Java加密 消息摘要算法MAC實(shí)現(xiàn)詳解
這篇文章主要介紹了Java 消息摘要算法MAC實(shí)現(xiàn)詳解,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2019-07-07

