# rotes herz 	public void paint(Graphics g)



## ToKaM OnE (12. Dez 2007)

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.

mfg Tokam

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


```
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);
	}
}
```


----------



## madboy (12. Dez 2007)

Ich persönlich nicht, aber der hier schon:
http://www.tutorials.de/forum/java/258809-herz-funktion.html


----------



## ToKaM OnE (15. Dez 2007)

Vielen Dank hat mir sehr weitergehofen..

hier eine kleine Erweiterung:

```
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();


----------

