G
Guest
Gast
Hallo,
ich hab eine Problem beim Rechtecke zeichnen.
Ich möchte dynamisch viele Rechtecke auf einem Panel adden (abhängig von Arraygröße). Dabei werden die Rechtecke in der Klasse Rechtecke gezeichnet (paintComponent).
Die JPanels auf denen jeweils das Rechteck liegt, werden in richtiger Anordnung gezeichnet, aber die Rechtecke darauf fehlen.
Das ganze hat noch funktioniert, bevor ich das Layout des Hauptpanels (panelRechts) auf ein null-Layout gesetzt habe, was aber notwendig ist.
Aufgefallen ist mir auch, dass beim Initialisieren des Applets paintComponent nicht aufgerufen wird, erst wenn ich die Größe des Applets ändere o.ä. Aber auch dann wird nichts neues gezeichnet.
Wo ist jetzt mein Fehler?
Danke für eure Hilfe!
ich hab eine Problem beim Rechtecke zeichnen.
Ich möchte dynamisch viele Rechtecke auf einem Panel adden (abhängig von Arraygröße). Dabei werden die Rechtecke in der Klasse Rechtecke gezeichnet (paintComponent).
Die JPanels auf denen jeweils das Rechteck liegt, werden in richtiger Anordnung gezeichnet, aber die Rechtecke darauf fehlen.
Das ganze hat noch funktioniert, bevor ich das Layout des Hauptpanels (panelRechts) auf ein null-Layout gesetzt habe, was aber notwendig ist.
Aufgefallen ist mir auch, dass beim Initialisieren des Applets paintComponent nicht aufgerufen wird, erst wenn ich die Größe des Applets ändere o.ä. Aber auch dann wird nichts neues gezeichnet.
Wo ist jetzt mein Fehler?
Code:
public class Applet extends JApplet{
.....
private JPanel panelRechts;
private Rechteck rechteck;
private static int rectBreite = 100;
private static int rectHoehe = 30;
private int LageX;
private int LageY;
@Override
public void init() {
panelRechts = new JPanel();
panelRechts.setPreferredSize(new Dimension(200, 500));
panelRechts.setLayout(null);
for (int i = 0; i < groesse; i++){
daten[i] ) aufbau.zeilen.get(i);
LageX = 100 + (i * 10);
LageY = 0 + (i * 50);
rechteck = new Rechteck();
rechteck.setBounds(LageX, LageY, rectBreite, rectHoehe);
rechteck.add(new JLabel(daten[i]));
rechteck.setToolTipText(daten[i]); //Array, in dem Daten stehen
panelRechts.add(rechteck);
rechteck.setVisible(true);
}
//Klasse Rechteck, um Datensätze aus DB grafisch darstellen zu können
class Rechteck extends JPanel{
public Rechteck(){
}
@Override
protected void paintComponent(Graphics g){
super.paintComponent(g);
Graphics2D g2 = (Graphics2D)g;
g2.setColor(Color.GREEN);
g2.fillRect(LageX, LageY, rectBreite, rectHoehe);
g2.setColor(Color.BLACK);
System.out.println("gezeichnet");
}
}
}
Danke für eure Hilfe!