Java中绘画LOVE,表白你的女朋友

前言:

情人节快到了,你可以试试看,怎么说呢,Java不适合做动画....感觉就像是

具体:

Java绘画坐标如下:,窗口大小1300*680

Java绘画路径如图所示:

演示动画:

代码:

tip:背景图片需要自己找一个

package ovewmq;

import java.awt.BasicStroke;
import java.awt.Color;
import java.awt.Graphics;
import java.awt.Graphics2D;

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

public class ShowLove extends JPanel {
	int x = 650;
	int y = 340;
	int width = 10;
	JFrame jf;
	int widthLove_L_1 = 200;
	int widthLove_L_2 = 100;

	int _V_1_X2 = 695;
	int _V_1_Y2 = 200;

	int _V_2_X2 = 870;
	int _V_2_Y2 = 210;

	int _E_1_Y = 210;
	int widthLove_E_2 = 100;
	int widthLove_E_3 = 100;
	int widthLove_E_4 = 100;

	int delay = 15;
	boolean top = false;
	boolean _L_1_TF = false;
	boolean _L_2_TF = false;
	boolean _O_TF = false;
	boolean _V_1_TF = false;
	boolean _V_2_TF = false;
	boolean _E_1_TF = false;
	boolean _E_2_TF = false;
	boolean _E_3_TF = false;
	boolean _E_4_TF = false;

	public static void main(String[] args) {
		new ShowLove();
	}

	public ShowLove() {
		set();

	}

	@Override
	public void paint(Graphics g) {
		super.paint(g);
		g.setColor(Color.red);
		g.fillRoundRect(x, y, 10, 10, 10, 10);
		// 控制横线出现
		if (y >= 350) {
			g.setColor(Color.darkGray);
			g.fill3DRect(200, 660, width, 11, true);
		}
		// 绘画_L_1
		if (top) {
			g.setColor(new Color(216, 191, 216));
			Graphics2D g2 = (Graphics2D) g; // g是Graphics对象
			g2.setStroke(new BasicStroke(20.0f));
			g2.drawLine(110, 210, 110, widthLove_L_1);
		}
		// 绘制_L_2
		if (_L_1_TF) {
			g.setColor(new Color(189, 183, 107));
			g.fillRect(100, 500, widthLove_L_2, 20);
		}
		// 绘制_O_
		if (_L_2_TF) {
			g.setColor(new Color(230, 230, 250));
			Graphics2D g2 = (Graphics2D) g; // g是Graphics对象
			g2.setStroke(new BasicStroke(20.0f));
			g2.drawOval(390, 210, 220, 320);// 400
		}
		// 绘制_V_1
		if (_O_TF) {
			g.setColor(new Color(123, 104, 238));
			Graphics2D g2 = (Graphics2D) g; // g是Graphics对象
			g2.setStroke(new BasicStroke(20.0f));
			g2.drawLine(698, 210, _V_1_X2, _V_1_Y2);
		}
		// 绘制_V_2
		if (_V_1_TF) {
			g.setColor(new Color(138, 43, 226));
			Graphics2D g2 = (Graphics2D) g; // g是Graphics对象
			g2.setStroke(new BasicStroke(20.0f));
			//// g2.drawLine(803, 510, _V_2_X2, _V_2_Y2);
			g2.drawLine(870, 210, _V_2_X2, _V_2_Y2);
		}
		// 绘制_E_1
		if (_V_2_TF) {
			g.setColor(new Color(100, 149, 237));
			Graphics2D g2 = (Graphics2D) g; // g是Graphics对象
			g2.setStroke(new BasicStroke(20.0f));
			g2.drawLine(1000, 210, 1000, _E_1_Y);
		}
		// 绘制_E_2
		if (_E_1_TF) {
			g.setColor(new Color(230, 230, 250));
			g.fillRect(1000, 500, widthLove_E_2, 20);
		}
		// 绘制_E_3
		if (_E_2_TF) {
			g.setColor(new Color(244, 164, 96));
			g.fillRect(1000, 200, widthLove_E_3, 20);
		}
		// 绘制_E_4
		if (_E_3_TF) {
			g.setColor(new Color(160, 82, 45));
			g.fillRect(1000, 350, widthLove_E_4, 20);
		}
	}

	// 绘画点
	public void Dra() {
		Thread thread = new Thread() {
			@Override
			public void run() {
				while (y <= 660) {
					y = y + 3;
					if (y >= 350 && width <= 900) {// 出现横线
						width += 10;
					}
					System.out.println(y);
					repaint();
					try {
						Thread.sleep(16);
					} catch (InterruptedException e) {

					}
				}
				top = true;
				_L_1();
			}
		};
		thread.start();
	}

	// 绘画_L_1
	public void _L_1() {
		Thread thread = new Thread() {
			@Override
			public void run() {
				while (widthLove_L_1 <= 490) {
					try {
						Thread.sleep(delay);
					} catch (InterruptedException e) {

					}
					widthLove_L_1 += 20;
					repaint();
				}
				// _L_1绘制完成
				_L_1_TF = true;
				// 开始绘制_L_2
				_L_2();
			}
		};
		thread.start();
	}

	// 绘制_L_2
	public void _L_2() {

		Thread thread = new Thread() {
			@Override
			public void run() {
				while (widthLove_L_2 <= 200) {
					try {
						Thread.sleep(delay);
					} catch (InterruptedException e) {

					}
					widthLove_L_2 += 20;
					repaint();
				}

				// _L_1绘制完成
				_L_2_TF = true;
				// 开始绘制_L_2
				_O_();
			}
		};
		thread.start();
	}

	// 绘制_O_
	public void _O_() {
		repaint();

		// _O_绘制完成
		_O_TF = true;
		// 开始绘制_V_1
		_V_1();
	}

	// 绘制_V_1
	public void _V_1() {
		Thread thread = new Thread() {
			@Override
			public void run() {
				while (_V_1_Y2 <= 500) {
					try {
						Thread.sleep(10);
					} catch (InterruptedException e) {

					}
					_V_1_X2 += 3.1;// 3.2
					_V_1_Y2 += 10;
					repaint();
				}

				// _V_1绘制完成
				_V_1_TF = true;
				// 开始绘制_V_2
				_V_2();
			}
		};
		thread.start();
	}

	// 绘制_V_2
	public void _V_2() {
		Thread thread = new Thread() {
			@Override
			public void run() {
				while (_V_2_Y2 <= 500) {
					try {
						Thread.sleep(10);
					} catch (InterruptedException e) {

					}

					_V_2_X2 -= 3;
					_V_2_Y2 += 10;
					repaint();
				}

				// _V_2绘制完成
				_V_2_TF = true;
				// 开始绘制_E_1
				_E_1();
			}
		};
		thread.start();
	}

	// 绘制_E_1
	public void _E_1() {
		Thread thread = new Thread() {
			@Override
			public void run() {
				while (_E_1_Y <= 500) {
					try {
						Thread.sleep(delay);
					} catch (InterruptedException e) {

					}
					_E_1_Y += 20;
					repaint();
				}

				// _E_1绘制完成
				_E_1_TF = true;
				// 开始绘制_E_1
				_E_2();
			}
		};
		thread.start();
	}

	// 绘制_E_2
	public void _E_2() {
		Thread thread = new Thread() {
			@Override
			public void run() {
				while (widthLove_E_2 <= 200) {
					try {
						Thread.sleep(delay);
					} catch (InterruptedException e) {

					}
					widthLove_E_2 += 20;
					repaint();
				}

				// _E_2绘制完成
				_E_2_TF = true;
				// 开始绘制_E_3
				_E_3();
			}
		};
		thread.start();
	}

	// 绘制_E_3
	public void _E_3() {
		Thread thread = new Thread() {
			@Override
			public void run() {
				while (widthLove_E_3 <= 200) {
					try {
						Thread.sleep(delay);
					} catch (InterruptedException e) {

					}
					widthLove_E_3 += 20;
					repaint();
				}

				// _E_3绘制完成
				_E_3_TF = true;
				// 开始绘制_E_4
				_E_4();
			}
		};
		thread.start();
	}

	// 绘制_E_4
	public void _E_4() {
		Thread thread = new Thread() {
			@Override
			public void run() {
				while (widthLove_E_4 <= 200) {
					try {
						Thread.sleep(delay);
					} catch (InterruptedException e) {

					}
					widthLove_E_4 += 20;
					repaint();
				}

				// _E_4绘制完成
				_E_4_TF = true;
				// 开始绘制xxx
			}
		};
		thread.start();
	}

	// 设置窗口
	public void set() {
		JLabel label;
		label = new JLabel(new ImageIcon("C:\\Demon\\background.jpg"));// 设置背景图
		jf = new JFrame();
		/*
		 * 设置窗口属性
		 */
		jf.setSize(1300, 680);
		jf.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
		jf.setContentPane(this);
		// 设置位置居中
		jf.setLocationRelativeTo(null);
		/*
		 * 设置窗口背景
		 */
		label.setBounds(0, 0, jf.getWidth(), jf.getHeight());
		jf.getLayeredPane().add(label, new Integer(Integer.MIN_VALUE));
		jf.setUndecorated(true);
		// jf.setAlwaysOnTop(true); //窗口设置始终最前面
		this.setOpaque(false);
		Dra();
		jf.setVisible(true);
	}

}
发布了14 篇原创文章 · 获赞 3 · 访问量 666

猜你喜欢

转载自blog.csdn.net/u014582342/article/details/104298739