Nowe posty

xx Apache2 i twarde https (3)
2020-05-25, 15:53:43
xx Czy istnieje emulator terminala który zapamieta komendy na jakiejś liście? (9)
2020-05-23, 17:04:57
xx RTLinux wybór dystrybucji (0)
2020-05-23, 15:42:54
xx Problem z instalacją Ubuntu na bootowalnym pendrajwie (9)
2020-05-22, 15:08:12
xx Ubuntudde 20.04 LTS nie działa Lightdm (8)
2020-05-22, 09:16:42
xx [Gra za darmo] GTA5 (1)
2020-05-20, 21:49:26
xx Marketing (1)
2020-05-13, 08:00:41
xx Polecenia Debian (1)
2020-05-10, 19:58:54
xx Uruchamianie pliku z każdego katlogu (2)
2020-05-10, 19:23:33
xx grafika w jadrze (1)
2020-05-10, 08:18:46

Autor Wątek: Odbijające się Hello World - problem logiczny  (Przeczytany 5192 razy)

Offline

  • Users
  • Stały bywalec
  • ***
  • Wiadomości: 111
    • Zobacz profil
Odbijające się Hello World - problem logiczny
« dnia: 2010-06-30, 17:42:56 »
Próbuję napisać hello world jako aplet z odbijającym się wiadomym napisem. Natrafiłem jednak na błąd logiczny. Napis helloworld owszem - rusza się, ale nie odbija od krawędzi apletu. Używam następującej procedury do poruszania:
ActionListener moveit = new ActionListener() {
      public void actionPerformed(ActionEvent evt) {
          hworld_position = hworld.getLocation(hworld_position);
          if ((hworld_position.x == 0) || (hworld_position.x+hworld.getWidth()==HiWorld.WIDTH)){xspeed=-xspeed;}
          if ((hworld_position.y == 0) || (hworld_position.y+hworld.getHeight()==HiWorld.HEIGHT)){yspeed=-yspeed;}
          hworld_position.x+= xspeed;
          hworld_position.y+=yspeed;
          hworld.setLocation(hworld_position);}
      };
Oczywiście problemem są ify, ale nie wiem jak inaczej pobrać wysokość/szerokość apletu.

Wyjaśnienie zmiennych: hworld jest obiektem klasy JLabel, xspeed/yspeed to wiadomo, a hworld_position to obiekt Point.

Offline Jakub Juszczakiewicz

  • Users
  • Nowy na forum
  • *
  • Wiadomości: 4
    • Zobacz profil
Odbijające się Hello World - problem logiczny
« Odpowiedź #1 dnia: 2010-07-01, 18:47:12 »
Klasa Applet w Javie dziedziczy m.i. po klasie java.awt.Component w której są m.i. takie metody jak:
public int getHeight();
public int getWidth();
public Dimension getSize();

Pobranie rozmiaru appletu sprowadza się do wywołania np. tych metod z metod obiektu klasy dziedziczącej po klasie Applet. Np.:
public MojApplet extends Applet {
   (...)
  public void init() {
    (...) = getSize();
  }
   (...)
}

Po za tym dałeś tam znak równości przy sprawdzaniu warunku - to będzie się sypać przy kroku innym niż 1.