tutorials.de Buch-Aktion 05/2012
Like Tree1Danke
  • 1 Beitrag von SE
ERLEDIGT
NEIN
ANTWORTEN
3
ZUGRIFFE
159
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    KarlPichler KarlPichler ist offline Mitglied Silber
    Registriert seit
    Aug 2011
    Beiträge
    62
    Hallo liebe Java Freunde,

    Frage: wie akualisiere ich eine Grafik in einm JFrame.

    Mein Code:

    Das ist meine Paint:

    Code java:
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    
    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:

    Code java:
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    
    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.
     

  2. #2
    Avatar von Fabio Hellmann
    Fabio Hellmann Fabio Hellmann ist offline Mitglied Brokat
    Registriert seit
    Aug 2011
    Ort
    München
    Beiträge
    494
    Versuchs mal so:

    Code java:
    1
    2
    3
    
    public void actionPerformed(ActionEvent ae) {
                drawPanel.repaint();
    }
     
    Bitte die Code-Tags verwenden. Bei Java-Code: [java]...[/java]

    Tutorials:
    Automatisches erzeugen eines Inhaltsverzeichnisses (Javascript)
    JAnimationPanel - Animationen für Swing/AWT
    SWTRatingBar (Bewertungs-Composite) selbst programmieren
    ____________________________________________________________________________
    Über eine Bewertung (Stern links unter dem Beitrag) oder ein Danke freue ich mich sehr.

  3. #3
    KarlPichler KarlPichler ist offline Mitglied Silber
    Registriert seit
    Aug 2011
    Beiträge
    62
    danke vielmals, habe immer das JPanel repaintet und nicht die paint methode überschrieben.
     

  4. #4
    SE Tutorials.de Gastzugang
    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.
    KarlPichler bedankt sich. 

Ähnliche Themen

  1. JFrame alle 20 millisekunden aktualisieren
    Von wahed132 im Forum Swing, Java2D/3D, SWT, JFace
    Antworten: 7
    Letzter Beitrag: 20.01.09, 23:01
  2. weicher Übergang einer Grafik in einem Menü
    Von El_Chefe im Forum Javascript & Ajax
    Antworten: 0
    Letzter Beitrag: 19.08.08, 13:13
  3. Aus einem JFrame anderes JFrame starten
    Von maddos im Forum Java
    Antworten: 3
    Letzter Beitrag: 09.08.07, 12:24
  4. Ein JFrame aus einem anderem JFrame aufrufen!
    Von Lautsprecher im Forum Java
    Antworten: 1
    Letzter Beitrag: 14.11.05, 09:37
  5. Grafik einer Dialogbasierten Anwendung aktualisieren
    Von McGreg im Forum VisualStudio & MFC
    Antworten: 16
    Letzter Beitrag: 10.02.05, 10:06