Avatar billede heltsikkert Nybegynder
26. marts 2003 - 18:16 Der er 5 kommentarer og
1 løsning

Opdatering af frame

Jeg har et problem med min GUI.
Har jeg en funktion (f.eks. en action-listener til en knap) bliver GUI'en først opdateret når funktionen er færdig.
Trykker man på min BtnCircle ser man først cirklen når den er blevet flyttet. Desuden er knappen visuelt trykket ned i hele det sekund det tager at køre funktionen.

Her er koden til action-listeneren:

  void BtnCircle_actionPerformed(ActionEvent e) {
    bluecircle Bc = new bluecircle();
    this.getContentPane().add(Bc);
    Bc.setBounds(100, 100, 44, 44);

    try {java.lang.Thread.sleep(1000);
    } catch (InterruptedException f) {
      System.out.println("Exception " + f.toString());
    }

    Bc.setBounds(200, 200, 44, 44);
  }


Hvis det kan være af interesse ser min bluecircle-class således ud:

class bluecircle extends JComponent {
  public void paint (Graphics g) {
    Graphics2D g2d = (Graphics2D)g;
    g2d.setColor(Color.blue);
    g2d.setStroke(new BasicStroke(3.0f));
    g2d.drawOval(2,2,41,41);
  }
}

Er der nogen, der kan hjælpe?
Kan det have noget med "sleep" at gøre? Skal jeg bruge en anden kommando?
Avatar billede riversen Nybegynder
26. marts 2003 - 18:21 #1
prøv at kalde repaint på din frame i actionPerformed
Avatar billede riversen Nybegynder
26. marts 2003 - 18:22 #2
svar
Avatar billede heltsikkert Nybegynder
26. marts 2003 - 18:29 #3
Det havde jeg også siddet og bøvlet lidt med, men kan ikke få det til at virke...
Jeg har nu sat

repaint();

ind efter linien:

Bc.setBounds(100, 100, 44, 44);

Men det hjælper ikke...
Var det det du mente?
Avatar billede _carsten Nybegynder
26. marts 2003 - 19:08 #4
Tror den her virker

Bc.setBounds(100, 100, 44, 44);
super.paint(getGraphics());
Avatar billede heltsikkert Nybegynder
26. marts 2003 - 19:16 #5
Yes! Det virker...
men det må næsten være fordi jeg har bygget det op på en forkert måde ik'? Det burde ikke være nødvendigt at kalde paint, eller er jeg galt på den?
Tak alligevel :-)
Avatar billede _carsten Nybegynder
26. marts 2003 - 19:20 #6
Jeg har faktisk ikke lige de vise sten her, men du ændrer jo udseendet på din Frame og på en eller måde skal den genopfriskes.

Jeg mener ikke du har bygget det forkert op!
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester