Wątek przeniesiony 2015-01-14 17:35 z Java przez bogdans.

Aplet-problem z kwadratem

2015-01-14 17:15
0

Witam,

napisałem swój pierwszy aplet jego działanie polega na przesuwającym się kwadracie po ekranie. Jestem początkującym i prosiłbym o pomoc w znalezieniu błędu

import java.awt.Color;
import java.applet.Applet;
import java.awt.Graphics;
import java.util.Timer;
import java.util.TimerTask;
public class asdf extends Applet

{
    Applet aplyt=this;
asdf zadanie=new asdf();
    static Applet applet;
    int kierunek=1;
    int poz1=0;
    int poz2=0;
    int licznik=0;

    public void init()        
    {   

    applet=this;
        this.setSize(600, 400);
        this.setBackground(Color.BLACK);

    }

 public void paint(Graphics g)
 {
     g.setColor(Color.CYAN);
     g.fillRect(zadanie.poz1, zadanie.poz2, 100, 100);

 }
 public void run(){

     switch(kierunek)
     {
     case 1: 
     licznik++;
     poz1++;
     if(licznik==200)
     {
     licznik=0;
     kierunek=2;
 }
     break;
     case 2:
     licznik++;
     poz2++;
     if(licznik==200)
     {licznik=0;
     kierunek=3;
 }
     break;
     case 3:
     licznik++;
     poz1--;
     if(licznik==200)
     {licznik=0;
     kierunek=4;
 }
     break;
     case 4:
     licznik++;
     poz2--;
     if(licznik==200); 
     {
         licznik=0;
     kierunek=1;
 }
     break;

     }
 }

}
edytowany 1x, ostatnio: bogdans, 2015-01-14 17:27
!Wstawiaj kod w znaczniki <code=java></code> - bogdans 2015-01-14 17:28
@TEAS750 - używasz randomowego formatowania, pasowałoby poprawić kod, bo jest trochę nieczytelny; - furious programming 2015-01-14 17:41

Pozostało 580 znaków

2015-01-14 17:17
0

Co krzyczy kompilator podczas działania na twoim naplecie?

Pozostało 580 znaków

2015-01-14 17:19
0

run:

java.lang.StackOverflowError
    at java.security.AccessControlContext.optimize(AccessControlContext.java:557)
    at java.security.AccessController.getContext(AccessController.java:826)
    at java.awt.Component.<init>(Component.java:477)
    at java.awt.Container.<init>(Container.java:281)
    at java.awt.Panel.<init>(Panel.java:64)
    at java.awt.Panel.<init>(Panel.java:56)
    at java.applet.Applet.<init>(Applet.java:65)
    at asdf.<init>(asdf.java:6)
    at asdf.<init>(asdf.java:10)
    at asdf.<init>(asdf.java:10)
    at asdf.<init>(asdf.java:10)
    at asdf.<init>(asdf.java:10)
    at asdf.<init>(asdf.java:10)
edytowany 1x, ostatnio: bogdans, 2015-01-14 17:28

Pozostało 580 znaków

2015-01-14 17:35
1

W wierszu

asdf zadanie=new asdf();

tworzysz nieskończoną rekurencję, każde utworzenie apletu tworzy kolejny aplet.
Wszystkie pola typu Applet są całkowicie zbędne, rozmiar apletu ustala się w pliku HTML, nie w kodzie apletu.


To smutne, że głupcy są tak pewni siebie, a ludzie mądrzy - tak pełni wątpliwości. Bertrand Russell
edytowany 1x, ostatnio: bogdans, 2015-01-14 17:37

Pozostało 580 znaków

Liczba odpowiedzi na stronę

1 użytkowników online, w tym zalogowanych: 0, gości: 1, botów: 0