# JAVA Graphics2D Problem das mich in den Wahnsinn treibt



## Basti (30. Nov 2004)

Hallo,

ich habe folgendes Problem.
Ich habe eine Zeichenfläche und eine Klasse die ein Objekt in diese Zeichenfläche zeichnen soll per Button-Druck


```
import java.awt.*;
import javax.swing.*;
import java.awt.event.*;
import java.awt.geom.*;

public class StarteOberflaeche extends JFrame implements ActionListener {
        
         //Der erste Button  (funktioniert)
	JButton GeradeKurz = new JButton("gerade kurz");


         //Diese Methode legt mein Fenster an (funktioniert)
	public StarteOberflaeche() {
	super("test");
    	setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		setSize(800, 800);
		setLocation(50, 50);
		JPanel GUI = new JPanel();
    	GUI.setLayout(new BoxLayout(GUI, BoxLayout.PAGE_AXIS));
		Oberflaeche Oberflaeche = new Oberflaeche();
	
		GUI.add(Oberflaeche);
		GUI.add(GeradeKurz);	
		GeradeKurz.addActionListener(this);
		setContentPane(GUI);

    	setVisible(true);
 	}
        //Bis hierher alles in ordnung, hab den frame mit buttons und so und der actionlistener funktioniert auch

  	public void actionPerformed(ActionEvent evt) 
  	{
         //naja, hier eben der actionlistener aufruf
    	Object source = evt.getSource();
    
    		if (source == GeradeKurz) {	
			GeradeKurz GeradeKurz = new GeradeKurz();

			/*Hier ungefähr liegt der Hund begraben.
			Ich bekomme es nicht hin das ein neues Element in 
			die Zeichenfläche geladen wird*/
			}
	
	}

       // die gute alte main-methode
	public static void main (String arguments[]) {
 	StarteOberflaeche StarteOberflaeche = new StarteOberflaeche();
	}

}

//Diese Klasse legt meine Zeichenfläche an (funktioniert)
public class Oberflaeche extends JPanel {

	public void paintComponent(Graphics g)
    {
        super.paintComponent(g);
        setForeground(Color.BLACK);
        Graphics2D Of = (Graphics2D)g;
        Of.setColor(Color.GREEN.darker());
        Of.fillRect(0, 0, 800, 600);
    }
    
}

//Nunja und hier ist nun mein objekt das geladen werden soll
//hier bin ich mir nicht sicher ob ich alles richtig gemacht habe, denke mal das problem
//könnte auch hier liegen.....
public class GeradeKurz extends Oberflaeche
{

   public void paint(Graphics g) {	
	   setForeground(Color.BLACK);
	   Graphics2D g2d = (Graphics2D)g;
	   g2d.setColor(Color.BLACK);
	   g2d.fillRect(0, 0, 80, 80);
	
    }

}
```

Ich hab alles versucht, gelesen, probiert, studiert, getestet, geraten, gehofft!!!! Nichts hat funktioniert.
Ich finde einfach meinen Fehler nicht.

Generell etwas in ein Fenster zu laden ist eigentlich nicht das Problem. Das klappt (siehe class Oberflaeche) prima.
Ich schaffe es halt nur nicht ein Objekt in dieses Zeichenfeld zu laden. Oder hab ich da generell was nicht verstanden??
Hab auch schon alle Themen die entfernt was damit zu tun haben hier bei euch durchgeackert. Aber das Problem scheint unlösbar. Moment: ???:L  Vielleicht gehts ja auch net......:autsch: 

Ich hoffe ihr könnt mir helfen.


----------



## Basti (2. Dez 2004)

Naja, mittlerweile hab ichs doch tatsächlich rausbekommen. :applaus:

Also könnt ihr mit gutem Gewissen aufhören mich mit Hilfestellungen
zu überfluten...
 :wink:


----------



## .robert (18. Nov 2005)

hi,
ich habe grade angefangen mich mit dem java2d-gedöns auseinander zu setzten, und ich habe das gleiche problem.
wäre ganz nett wenn du diene lösung hier präsentieren könntest (ja ich weiß, der thread ist schon alt, ich bin beim suchen drauf gestoßen).

oder auch wenn jemand anders mir helfen kann:
ich habe eine ganz ganz einfache 2d-zeichenmethode, die aber nicht dargestellt wird.
das merkwürdigste: ich habe sie 1zu1 aus einem buch übernommen.
hier die wichtigen codezeilen:

```
import java.awt.*;

...
	
	public void paint(Graphics g) {
		Graphics2D g2d = (Graphics2D) g;
		g2d.drawString("lorem ipsu und so weiter",30,50);
	}
	
	...

}
```
ich habe es auch mit anderen draw-functionen getestet, aber immer das gleiche, nämlich nix!
das fenster wird ordentlich dargestellt, nur die 2d-draw-function nicht.

weiß jemand rat?

grüße,
.robert


----------



## .robert (19. Nov 2005)

ok, ich habe es.
bei eclipse war die falsche jre eingestellt.
nun läuft es


----------

