Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

Pomoc oko appleta!

[es] :: Java :: Pomoc oko appleta!

[ Pregleda: 2235 | Odgovora: 2 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

bookky
Boris Mandic

Član broj: 50727
Poruke: 12
*.cmu.carnet.hr.



Profil

icon Pomoc oko appleta!30.10.2005. u 21:05 - pre 225 meseci
Pozdrav svima!
Molim za pomoc ako netko ima malo vremena i zivaca da pogleda ovaj applet. Dakle u cemu je problem, kada se pokrene ovaj applet treba prvo da se postavi polozaj i pokrene se s buttonom "pokreni". Problem je sto nikako ne mogu da napravim da dugme "Pokreni" iscrtava ta dva lika iz jednog polozaja u drugi kao animaciju.Ovo moje radi tako da kad se klikne pokreni, on vrti petlju(nista ne iscrtava) i kada zavrsi iscrta ga u zavrsnom polozaju. Mislim da tu treba da se doda samo jos neka sitnica, samo ja nemam bas buno iskustva s ovim pa ne mogu nikako da prokuzim.

Hvala !

Code:

import java.applet.*;

import java.awt.*;
import java.awt.event.ActionListener;
import java.awt.event.ActionEvent;
import java.awt.Graphics;

public class Kruznica
    extends java.applet.Applet
    implements Runnable {
  Thread animacija;
  Graphics gr;
  int a = 60, b = 100, c = 120, d = 120, z = 280, f = 120, j = 80, h = 80,
      k = 61;

  public void start() {
    if (animacija == null) {
      animacija = new Thread(this);
      animacija.start();
    }
  }

  public synchronized void stop() {
    if (animacija != null) {
      animacija.stop();
      animacija = null;
    }
  }

  public void run() {
       setBackground(Color.LIGHT_GRAY);
    while (true) {
      repaint();
      pause(50);
      a++;
      z--;
      if (a == k) {
        break;
      }
    }
  }

 
  void pause(int vrijeme) {
    try {
      Thread.sleep(vrijeme);
    }
    catch (InterruptedException e) {}
  }
  public void paint(Graphics g) {
    g.setColor(Color.BLUE);
    g.drawOval(a, b, c, d);
    g.drawOval(z, f, j, h);
  }

  class B
      implements ActionListener {
    public void actionPerformed(ActionEvent e) {
      a = 60;
      z = 280;
      k = 61;
      repaint();
    }
  }

  class C
      implements ActionListener {
    public void actionPerformed(ActionEvent e) {
      k = 111;
    }
  }

  class D
      implements ActionListener {
    public void actionPerformed(ActionEvent e) {
      k = 125;
    }
  }

  class E
      implements ActionListener {
    public void actionPerformed(ActionEvent e) {
      k = 151;
    }
  }
  class F
       extends Thread
       implements ActionListener, Runnable {
     public void actionPerformed(ActionEvent e) {
 
       while (true) {
         repaint();
         pause(50);
         a++;
         z--;
         if (a == k) {
           break;
         }
       }
     }
   }

  B b1 = new B();
  C c1 = new C();
  D d1 = new D();
  E e1 = new E();
  F f1 = new F();
  public void init() {
    Panel panel1 = new Panel();
    Button gumb1 = new Button("Reset ");
    Button gumb2 = new Button("1 tocka izvan");
    Button gumb3 = new Button("2 tocke");
    Button gumb4 = new Button("1tocka unutar");
    Button gumb5 = new Button("Pokreni");

    add(gumb1);
    gumb1.addActionListener(b1);
    add(gumb2);
    gumb2.addActionListener(c1);
    add(gumb3);
    gumb3.addActionListener(d1);
    add(gumb4);
    gumb4.addActionListener(e1);
    add(gumb5);
    gumb5.addActionListener(f1);
  }
}

 
Odgovor na temu

bgd2500

Član broj: 55912
Poruke: 226
82.117.193.*



+7 Profil

icon Re: Pomoc oko appleta!31.10.2005. u 17:53 - pre 224 meseci
Isti tred opsluzuje action evente i awt komponente (paint/repaint) pa ne mozes videti da se bilo sta desava. Moras kreirati novi tred koji ce da ti osvezava awt komponentu (aplet) i oslobodi prvi. Klasa F je pisana sa tom idejom ali nije dobro napisana. Izmeni je da izgleda ovako;

Code:

  class F implements ActionListener, Runnable {
     public void actionPerformed(ActionEvent e) {
          new Thread(this).start();
     }
 
     public void run() {
       while (true) {
         repaint();
         pause(50);
         a++;
         z--;
         if (a == k) {
           break;
         }
       }
     }
   }

 
Odgovor na temu

bookky
Boris Mandic

Član broj: 50727
Poruke: 12
*.cmu.carnet.hr.



Profil

icon Re: Pomoc oko appleta!31.10.2005. u 19:15 - pre 224 meseci
:)) Sad radi !

Puno hvala!

Pozdrav!
 
Odgovor na temu

[es] :: Java :: Pomoc oko appleta!

[ Pregleda: 2235 | Odgovora: 2 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.