AKtualisieren einer Grafik in einem JFrame

KarlPichler

Mitglied
Hallo liebe Java Freunde,

Frage: wie akualisiere ich eine Grafik in einm JFrame.

Mein Code:

Das ist meine Paint:

Java:
public class MyPanel extends JComponent {
public void calculateDrawing()
{ ...
 }

public void paint(Graphics g) {
        super.paintComponent(g);
        Graphics2D g2 = (Graphics2D)g;
        calculateDrawing();

        for (int i=0; i < 30; i++) {

            RectColor = new Color(Randomize(255),Randomize(255),Randomize(255));
            
            g2.setStroke(new BasicStroke(8));             
            g2.setColor(RectColor);
            //g.fillRect(RectLeft, RectTop, RectWidth-1, RectHeight-1);
            if(sectionsInt[i][6]<=4)
            {   
                RectTop = sectionsInt[i][0];
                RectLeft = sectionsInt[i][1];
                RectWidth = sectionsInt[i][2];
                RectHeight = sectionsInt[i][3];
                g2.drawLine(RectLeft, RectTop, RectWidth, RectHeight); 
            }
}
}
}

Das ist mein Main Programm:

Java:
public class Test5 extends JFrame implements ActionListener {
    
    MyPanel drawPanel= new MyPanel();

public final void initUI() {

        
        setLayout(null);
        
        Border b = BorderFactory.createLineBorder(Color.black);
        
        jPImage = new JPanel();
        jPImage.setBounds(10,70,430,390);
        jPImage.setBorder(b);
        ...
add(jPImage);
}

...

 public void actionPerformed(ActionEvent ae) {
        Object obj = ae.getSource();
        
        if(obj == jBUp)
        {                       drawPanel.setPreferredSize(new Dimension(430,390));
            jPImage.add(drawPanel);
            jPImage.repaint();
}
}

Bei ButtonDruck sollte die Grafik aktualisiert werden, wird aber nur leider einmal gezeichnet und danach nicht mehr aktualisiert!.


Was mache ich falsch? Kann mir jemand bitte eine richtiges Code Example posten, ich finde nichts passendes in verschiedensten Foren.

Danke im vorraus.
 
Nein ... das war es nicht ... das Problem war das du immer wieder ein neues JComponent *denn deine Klasse erbt nicht von JPanel ... hier bitte genau auf den Code achten* hinzugefügt aber das Layout nicht mit Container.validate() aktualisiert.
 

Neue Beiträge

Zurück