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 效果图:
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。
相关文章
谈谈Spring Boot 数据源加载及其多数据源简单实现(小结)
这篇文章主要介绍了谈谈Spring Boot 数据源加载及其多数据源简单实现,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧2019-04-04
最新评论