Hallo,
ich habe da ein Problem beim Zeichnen einer Graphics-Komponente. Ich habe eine Klasse geschrieben, in der ein Quader angelegt wird:
Die Klasse ist von JPanel abgeleitet, da ich den Quader auf ein bereits bestehendes JPanel einfügen möchte. In einer anderen Klasse erzeuge ich ein Objekt der Klasse Zeichnen.
Dieses adde ich auf ein weiteres JPanel, dass wiederum auf ein JPanel geaddet wird usw. bis ich alles auf dem JPanel p_haupt geaddet habe. Zum Schluss will ich dann alles auf das JFrame adden:
So, und jetzt wird mir die Graphik leider nicht angezeigt. Das Panel ist da, was man an der TitledBorder sieht, aber es ist leider leer. Ich vermute ja, dass es irgendwie daran liegt, dass ich es nicht direkt auf das JFrame adde. Wenn ich nämlich im Konstruktor Eingabe()
sage, ist die Graphik da. Nur will ich sie da ja gar nicht hinhaben...
Habt ihr ne Idee wie ichs hinkriege, dass die Graphik auf dem Panel angezeigt wird? Ich verzweifle langsam.
Liebe Grüße, Ännchen
ich habe da ein Problem beim Zeichnen einer Graphics-Komponente. Ich habe eine Klasse geschrieben, in der ein Quader angelegt wird:
Java:
import java.awt.Graphics;
import java.awt.Polygon;
import javax.swing.JPanel;
public class Zeichnen extends JPanel{
@Override
public void paintComponent(Graphics g){
super.paintComponent(g);
Polygon polygon = new Polygon();
polygon.addPoint(400, 400);
polygon.addPoint(500, 400);
polygon.addPoint(500, 500);
polygon.addPoint(400, 500);
g.drawPolygon(polygon);
Polygon polygon2 = new Polygon();
polygon2.addPoint(400, 400);
polygon2.addPoint(410, 390);
polygon2.addPoint(510, 390);
polygon2.addPoint(500, 400);
g.drawPolygon(polygon2);
Polygon polygon3 = new Polygon();
polygon3.addPoint(500, 500);
polygon3.addPoint(510, 490);
polygon3.addPoint(510, 390);
polygon3.addPoint(500, 400);
g.drawPolygon(polygon3);
}
}
Die Klasse ist von JPanel abgeleitet, da ich den Quader auf ein bereits bestehendes JPanel einfügen möchte. In einer anderen Klasse erzeuge ich ein Objekt der Klasse Zeichnen.
Java:
Zeichnen rekombinator = new Zeichnen();
rekombinator.setBorder(new TitledBorder("Graphik Rekombinator"));
rekombinator.setPreferredSize(new Dimension(300, 300));
p_platten2.add(rekombinator);
rekombinator.repaint();
Dieses adde ich auf ein weiteres JPanel, dass wiederum auf ein JPanel geaddet wird usw. bis ich alles auf dem JPanel p_haupt geaddet habe. Zum Schluss will ich dann alles auf das JFrame adden:
Java:
public class Eingabe extends JFrame {
public Eingabe(){
super("REKO-Direkt");
this.setSize(1050,768);
this.setExtendedState(javax.swing.JFrame.MAXIMIZED_BOTH);
this.setLocation(0,0);
this.getContentPane().add(p_haupt);
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
this.setVisible(true);
}
}
So, und jetzt wird mir die Graphik leider nicht angezeigt. Das Panel ist da, was man an der TitledBorder sieht, aber es ist leider leer. Ich vermute ja, dass es irgendwie daran liegt, dass ich es nicht direkt auf das JFrame adde. Wenn ich nämlich im Konstruktor Eingabe()
Java:
this.getContentPane().add(rekombinator)
Habt ihr ne Idee wie ichs hinkriege, dass die Graphik auf dem Panel angezeigt wird? Ich verzweifle langsam.
Liebe Grüße, Ännchen