Umyśliłem sobie 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.
Ogólnie to uczę się w NetBeans, bo nie podoba mi się, że w zwykłym JDK muszę ustawiać pozycje poszczególnych obiektów w kodzie. NetBeans ma fajny generator podobny do tego z Delphi co bardzo mi ułatwia tworzenie. Gorąco polecam to środowisko.
//EDIT: Od razu mówię, że jestem początkujący, stąd typ programu. Algorytm jest na 100% dobry, bo wielokrotnie go używałem (wprawdzie w innych językach, ale algorytm to algorytm). Problem jest tak jak mówię w ifach.