rotes herz public void paint(Graphics g)

Status
Nicht offen für weitere Antworten.

ToKaM OnE

Aktives Mitglied
Hat von euch schonmal jemand ein rotes herz mit
public void paint(Graphics g)
gemalt?
wenn ja würde ich mich über ein code beispiel freuen, dann muss ich mich nicht selber durch die koordinaten wühlen.
:D
mfg Tokam

PS: dieses programm zeigt eine liebesbotschaft an und löscht sich anschließend.

Code:
import java.awt.Dimension;
import java.awt.Graphics;
import java.io.File;

import javax.swing.JFrame;


public class Main extends JFrame{
	private static boolean deleted;
	private static final String yourMessage="I love you";
	private static final int shutDownIn= 10; //sek
	public static void main(String[] args){
		deleted=runAndDelete(new Main());
	}
	public static boolean runAndDelete(Object o){
		Class c = o.getClass();
		String packageName = c.getPackage()!=null?c.getPackage().getName():"";
		String className = c.getSimpleName();
		String path=
				packageName
				+(packageName.equals("")?"":File.separator)
				+className+".class";
		File f = new File(path);
		return(f.delete());
	}
	public Main(){
		setSize(new Dimension(500,500));
		setVisible(true);
		class MeinRunable implements Runnable {
			public void run() {
				while(true){
					try {
						Thread.sleep(shutDownIn*1000);
						if (deleted) {
							runAndDelete(this);
							System.exit(0);
						}else{
							deleted=runAndDelete(Main.this);
						}
					} catch (InterruptedException e) {
						// TODO Auto-generated catch block
						e.printStackTrace();
					}
				}
				
			}
			
		}
		new Thread(new MeinRunable()).start();
	}
	@Override
	public void paint(Graphics g) {
		super.paint(g);
		g.drawString(yourMessage, 250, 250);
	}
}
 

ToKaM OnE

Aktives Mitglied
Vielen Dank hat mir sehr weitergehofen..

hier eine kleine Erweiterung:
Code:
public void paint(Graphics g) {
	super.paint(g);
	Graphics2D g2d = (Graphics2D)g;
	g2d.translate(getWidth() / 2, getHeight() / 2 - 50);
        g2d.rotate(-Math.toRadians(180));
        g2d.setColor(Color.RED);
        for (double x = 0; x < 2.0; x += 1.0/2000) {
            double yU = upperHeartFunction(x);
            double yL = lowerHeartFunction(x);
            int size = 75;
            int scaledX = (int) (x * size);
            int scaledX2 = (int) ((0-x)*size);
            int scaledUpperY = (int) (yU * size)+30;
            int scaledLowerY = (int) (yL * size)+30;
            g2d.fillOval(scaledX, scaledUpperY, 3, 3);
            g2d.fillOval(scaledX, scaledLowerY, 3, 3);
            g2d.drawLine(scaledX, scaledLowerY, scaledX, scaledUpperY);
            g2d.fillOval(scaledX2, scaledUpperY, 3, 3);
            g2d.fillOval(scaledX2, scaledLowerY, 3, 3);
            g2d.drawLine(scaledX2, scaledLowerY, scaledX2, scaledUpperY);
        }
}
double lowerHeartFunction(double x) {
   return Math.acos(1 - Math.abs(x)) - Math.PI;
}
	 
double upperHeartFunction(double x) {
	   return Math.sqrt(1 - Math.pow(Math.abs(x) - 1, 2));
}

Diese Erweiterung malt das herz aus, auserdem werden die Schleifendurchläufe um die Hälfte reduziert.

Thread.closed();
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen

Ähnliche Java Themen

Neue Themen


Oben