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

Problem neverovatno glup o nelogican bar meni

[es] :: Java :: Problem neverovatno glup o nelogican bar meni

[ Pregleda: 2958 | Odgovora: 18 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

voxi

Član broj: 67178
Poruke: 328
*.skaut.net.



Profil

icon Problem neverovatno glup o nelogican bar meni23.12.2006. u 22:03 - pre 210 meseci
Treba mi malo da mi samo razjasnite jednu nejasnocu!!!

Pravim neku jednostavnu igricu i tu koristim niti ali nista slozeno medjutim javlja mi se problem kada pozovem f-ju repaint() iz run() metode nece da je pozve ne javi gresku kompajlira i radi aplet ali jednostavno nece da odradi repaint a drugi problem je da vrednosti promenljivih y1 i y2 nece da promeni u metodi run() cak sam pokusao da prosledim argumente u drugu f-ju pa tamo da dodelim vrednosti ali ni to nije islo


Igrica se zasniva na tom da dole ima mali top kojim se za F1 treba pucati a sa streslicama pomerati levo i desno e sada kod mene kordinate y1 i y2 bi trebale da budu kordinate metka koje menjam medjutima javlja mi se gore navedeni problem a ja nikako ne mogu da uocim gresku sobzirmo da su promenljive y1 i y2 protected tipa po defoultu pa svi u jednoj kalasi imaju pravo na pristp i menjanje ali ovde to ne radi.

Napomena: ja aplete radim u javi 1.4 posto tamo ima poseban dio za aplete to mi je lakse tako da ne moram stalno da iz dosa kompajliram

Ako mognete samo da mi odgonetnete ovaj problem kako bi nastavio sa zapocetom igricom


Code:
  /*
 * Pucacina.java
 *
 * Created on Subota, 2006, Decembar 23, 20.09
 */

package Pucacina;
import java.awt.Event;
import java.awt.*;
import java.lang.*;

/**
 *
 * @author  xx
 */
public class Pucacina extends java.applet.Applet implements Runnable {
    
    /** Initialization method that will be called after the applet is loaded
     *  into the browser.
     */
    int left=250,right=250, x=250;
  public int y1,y2;
    
    public void init() {
        
    }
    
    public void  run(){
        //System.out.print ("Pocinje RUN "); 
        int pomY1,pomY2;
        for(int i=45;i>0;i--){
          y1=i*10;
          y2=(i-1)*10; 
          repaint();
           
           
          System.out.println("y1="+y1+"y2="+y2);
          try{          
             Thread.sleep(500);
          }
          catch(Exception e){}
          
        }
        
    }
        
    
    public boolean keyDown(Event dogadjaj, int dirka){ 
        //System.out.println("dirak="+dirka);
         switch(dirka){
             case Event.LEFT: 
                  if(x>5)
                    x-=5;
                  break; 
             case Event.RIGHT:
                 if(x<480)                 
                    x+=5;
                  break;
             case Event.F1: 
                  Pucacina p = new Pucacina();
                  Thread t = new Thread(p);
                  t.start();
                  break;
                  
         }
         // System.out.println("x="+x);
          repaint(); 
         return true;
       }   
       
    
     public  void paint (Graphics g){
        
         this.setSize(500,500);
          setBackground(Color.blue); 
          g.setColor(Color.black);
          //g.drawRect(x,480,20,20);
          g.fillRect(x,480,20,20);
          g.fillRect(x+7,475,6,5);
          g.setColor(Color.yellow);
          
          System.out.println("Ovde se treba izcrtati:  y1="+y1+"y2="+y2+" x="+x);
          
          g.drawLine(x+8,y1,x+8,y2);
          System.out.println("Crta");       
     }
    
}


 



HVALA
 
Odgovor na temu

igisar
Igor Šarčević
Bačka Topola

Član broj: 95364
Poruke: 76
*.stcable.co.yu.



Profil

icon Re: Problem neverovatno glup o nelogican bar meni24.12.2006. u 08:21 - pre 210 meseci
Probaj da das neke pocetne vrednosti

znaci na primer x1=1; y1=1;

tako bi trebalo da radi

pravi programeri programiraju magnetom po disketi :) :)
 
Odgovor na temu

igisar
Igor Šarčević
Bačka Topola

Član broj: 95364
Poruke: 76
*.stcable.co.yu.



Profil

icon Re: Problem neverovatno glup o nelogican bar meni24.12.2006. u 08:44 - pre 210 meseci
i jos jedan savet ako napises

Code:
   
        try{          
             Thread.sleep(500);
          }
          catch(Exception e){}
          
        }

ceo program ce ti se "blokirati"
pravi programeri programiraju magnetom po disketi :) :)
 
Odgovor na temu

djalfirevic

Član broj: 76932
Poruke: 497
*.dynamic.sbb.co.yu.



Profil

icon Re: Problem neverovatno glup o nelogican bar meni24.12.2006. u 08:55 - pre 210 meseci
Citat:
igisar: Probaj da das neke pocetne vrednosti

znaci na primer x1=1; y1=1;

tako bi trebalo da radi


Probao sam ja da stavim pocetne vrednosti ali bezuspesno. Ne kapiram uopste u cemu je stvar...
 
Odgovor na temu

voxi

Član broj: 67178
Poruke: 328
*.net
Via: [es] mailing liste



Profil

icon Re: Problem neverovatno glup o nelogican bar meni24.12.2006. u 10:43 - pre 210 meseci
Nece se program blokirati zbog Thread.sleep(500) a zadavenje pocetnih
vrednosti nije potrebno posto su promenljive definisane u okviru klase a ne
u okviru neke f-ije i samim tim dobijaju pocetne vrednosti 0 po defoultu ali
pokusao sam ja i sa zadavnjem vrednosti.

Ajd ako neko skonta neka javi ali totalno je nelogican problem
 
Odgovor na temu

Toxter
NS

Član broj: 39393
Poruke: 317
81.18.61.*



+6 Profil

icon Re: Problem neverovatno glup o nelogican bar meni24.12.2006. u 11:52 - pre 210 meseci
Umesto:
Code:
case Event.F1: 
Pucacina p = new Pucacina();
Thread t = new Thread(p);
t.start();
break;

stavi:
Code:
case Event.F1: 
Thread t = new Thread(this);
t.start();
break;


Stalno si instancirao novi objekat i novi thread (Thread t ...) je pozivao njegov paint().

pozzzzzz
Sad mu nije nista, ubio si ga k'o zeca...
 
Odgovor na temu

igisar
Igor Šarčević
Bačka Topola

Član broj: 95364
Poruke: 76
*.stcable.co.yu.



Profil

icon Re: Problem neverovatno glup o nelogican bar meni25.12.2006. u 11:46 - pre 210 meseci
Citat:
voxi: Nece se program blokirati zbog Thread.sleep(500) a zadavenje pocetnih
vrednosti nije potrebno posto su promenljive definisane u okviru klase a ne
u okviru neke f-ije i samim tim dobijaju pocetne vrednosti 0 po defoultu ali
pokusao sam ja i sa zadavnjem vrednosti.

Ajd ako neko skonta neka javi ali totalno je nelogican problem

da u pravu si nisam imao puno vremena pa sam na brizinu odgovorio
pravi programeri programiraju magnetom po disketi :) :)
 
Odgovor na temu

Java Beograd
Novi Beograd

Član broj: 11890
Poruke: 9497
..yu.220.247.194.in-addr.arpa.



+10254 Profil

icon Re: Problem neverovatno glup o nelogican bar meni27.12.2006. u 12:45 - pre 210 meseci
Metoda paint(Graphics g) je ASINHRONA, u samoj virtuelnoj masini. Dakle, ti je pozoveš, a Java VM, kaže "OK, kad ne bude bilo pametnijeg posla, odradiću ovo, tj. nacrtaću na ekran".
Nema načina da ovo zaobiđeš. Neka poboljšanja možeš da postigneš ako crtaš u off screen graphics, naprimer, ali opet imaš paint, kad off screen image hoćeš da nacrtaš na ekran.
OTPOR blokadi ulica, OTPOR blokiranom Beogradu, OTPOR blokiranoj Srbiji
 
Odgovor na temu

SluX

Član broj: 77091
Poruke: 56
*.dynamic.sbb.co.yu.



Profil

icon Re: Problem neverovatno glup o nelogican bar meni27.12.2006. u 22:19 - pre 210 meseci
Izvini kolega, ali i nisi bas u pravu.
1) Poziv na repaint metodu ima veze sa time sto spominjes-odmah se vrati izlaz pozivajucoj metodi, a zahtev se smesti u red za cekanje
2) Naravno da mozes da koristis aktivni render i prilikom koriscenja paint metode-samo pokupi graphics objekat tvog prozora/componete preko metoda getGraphics...

U principu to sto si rekao ima smisla, samo si izneo netacne cinjenice.

Opet, ko god zeli da zna vise o ovome neka kuca u googlu nesto tipa java active rendering.
 
Odgovor na temu

voxi

Član broj: 67178
Poruke: 328
*.net
Via: [es] mailing liste



Profil

icon Re: Problem neverovatno glup o nelogican bar meni28.12.2006. u 18:08 - pre 210 meseci
Hvala moci za ovo ali ajd ko ce mi sada ovo reci radim neku jednostvnu
aplikaciju bezano za TCP/Ip to jest soket programiranje e sad ja

Unesem BufferedReader inFromUser = new BufferedReader(new
InputStreamReader(System.in));

E zasto ja sada kada dodje ovo System.in program se ne zaustavi pa da ja
iz konzolnog prozora preko tastature unesem neki string ili tako nesto
ajd mi to pomozite ako mozete posto trebam da posaljem neki strin na
server aplikaciju
 
Odgovor na temu

djalfirevic

Član broj: 76932
Poruke: 497
*.dynamic.sbb.co.yu.



Profil

icon Re: Problem neverovatno glup o nelogican bar meni28.12.2006. u 19:31 - pre 210 meseci
Citat:
voxi: Hvala moci za ovo ali ajd ko ce mi sada ovo reci radim neku jednostvnu
aplikaciju bezano za TCP/Ip to jest soket programiranje e sad ja

Unesem BufferedReader inFromUser = new BufferedReader(new
InputStreamReader(System.in));

E zasto ja sada kada dodje ovo System.in program se ne zaustavi pa da ja
iz konzolnog prozora preko tastature unesem neki string ili tako nesto
ajd mi to pomozite ako mozete posto trebam da posaljem neki strin na
server aplikaciju


Zato sto posle ovog:

Code:

BufferedReader inFromUser = new BufferedReader(new InputStreamReader(System.in));


, verovatno nisi stavio:

Code:

inFromUser.read();            //ili inFromUser.readLine()


, nakon cega se u stvari zablokira ulaz i ceka se da korisnik unese nesto.
 
Odgovor na temu

voxi

Član broj: 67178
Poruke: 328
*.net
Via: [es] mailing liste



Profil

icon Re: Problem neverovatno glup o nelogican bar meni28.12.2006. u 23:23 - pre 210 meseci
Hvala to sam bio uradio ali sama na jednom mjestu izostavio "" kod "n"
tako da nije ni radilo onda
 
Odgovor na temu

voxi

Član broj: 67178
Poruke: 328
*.skaut.net.



Profil

icon Re: Problem neverovatno glup o nelogican bar meni02.01.2007. u 20:07 - pre 210 meseci
Evo jos jedno pitanje vezano za prvi problem (oko apleta) imama sledeci kod

Code:

/*
 * Pucacina.java
 *
 * Created on Subota, 2006, Decembar 23, 20.09
 */

package Pucacina;
import java.awt.Event;
import java.awt.*;
import java.lang.*;
/**
 *
 * @author  xx
 */
public class Pucacina extends java.applet.Applet implements Runnable {
    
    /** Initialization method that will be called after the applet is loaded
     *  into the browser.
     */
    int left=5,right=250, x=250;
    public int y1,y2,xMet;
    
      Meteori mt=new Meteori();
      Thread thMt=new Thread(mt);
      
    public void init( ) {
     
      setBackground(Color.blue);  
      thMt.start();
      
     
    }    
    
    
    public void  run(){
        //System.out.print ("Pocinje RUN ");          
        xMet=x;
        for(int i=45;i>0;i--){
            
         y1=i*10;
         y2=(i-1)*10; 
         xMet=xMet;
          // init(); 
         repaint();
           left--;
           
          //System.out.println("y1="+y1+"y2="+y2+" left="+left);
          try{          
             Thread.sleep(5);
          }
          catch(Exception e){}
          
        }        
    }
        
    
    public boolean keyDown(Event dogadjaj, int dirka){ 
        //System.out.println("dirak="+dirka);
         switch(dirka){
             case Event.LEFT: 
                  if(x>5)
                    x-=10;
                  break; 
             case Event.RIGHT:
                 if(x<480)                 
                    x+=10;                 
                  break;
             case Event.F1:
                 // Pucacina p = new Pucacina();
                  Thread t = new Thread(this);
                  t.start();                  
                  break;                  
         }
         // System.out.println("x="+x);
          repaint(); 
         return true;
       }          
    
    public void precrtaj(){
        System.out.println("Precrtava");
        repaint();
    }
    
    
    
     public  void paint (Graphics g){
        
         this.setSize(500,500);
         
          g.setColor(Color.black);
          //g.drawRect(x,480,20,20);
          g.fillRect(x,480,20,20);
          g.fillRect(x+7,475,6,5);
          g.setColor(Color.yellow);          
          //System.out.println("Ovde se treba izcrtati:  y1="+y1+"y2="+y2+" x="+x+" left="+left);        
          g.drawLine(xMet+8,y1,xMet+8,y2);
          
          System.out.println("x= " +mt.getXm()+" y="+mt.getYm());
          g.drawOval(mt.getXm(),mt.getYm(),35,35);
          //System.out.println("Crta");       
     }
    
}

class Meteori implements Runnable{
    int xm=45,ym;    
    
    public void run() {
        Pucacina pc=new Pucacina();  
       
        for(int i=0;i<30;i++){
          setYm(i*10); 
          System.out.println("ym->"+ym);
          pc.precrtaj();
         try{          
             Thread.sleep(100);
          }
          catch(Exception e){}
        }        
    }    
    
    public void setXm(int xm){
     this.xm=xm;   
    }
    
    public int getXm(){
     return this.xm;   
    }
    
    public void setYm(int ym){
      this.ym=ym;   
    }
    
    public int getYm(){
     return this.ym;       
    }
    
}


E sad mene zanima kako da iz klase Meteori pozovem Paint metodu koja se nalazi u klasi Pucacina. Inace klasa Meteri racuna i odredjuje koorditnate meteora ili bolje receno u mom slucaju jednog kruga koji pada odozkog. Meni se javlja problem sto ne izcrta novo mjesto kruga dok ne pritisnem F1 ako ko moze da mi pomogne bio bi mu zahvalan puno

 
Odgovor na temu

Toxter
NS

Član broj: 39393
Poruke: 317
81.18.61.*



+6 Profil

icon Re: Problem neverovatno glup o nelogican bar meni02.01.2007. u 21:27 - pre 210 meseci
Probaj ovako:
Code:


import java.awt.Color;
import java.awt.Event;
import java.awt.Graphics;

public class Pucacina extends java.applet.Applet implements Runnable {

    /** Initialization method that will be called after the applet is loaded
     *  into the browser.
     */
    int left=5,right=250, x=250;
    public int y1,y2,xMet;

    Meteori mt=new Meteori();
    Thread thMt=new Thread(mt);

    public void init( ) {
        mt.setPucacina(this);
        setBackground(Color.blue);
        thMt.start();


    }


    public void  run(){
        //System.out.print ("Pocinje RUN ");
        xMet=x;
        for(int i=45;i>0;i--){

            y1=i*10;
            y2=(i-1)*10;
            xMet=xMet;
            // init();
            repaint();
            left--;

            //System.out.println("y1="+y1+"y2="+y2+" left="+left);
            try{
                Thread.sleep(5);
            }
            catch(Exception e){}

        }
    }


    public boolean keyDown(Event dogadjaj, int dirka){
        //System.out.println("dirak="+dirka);
        switch(dirka){
        case Event.LEFT:
            if(x>5)
                x-=10;
            break;
        case Event.RIGHT:
            if(x<480)
                x+=10;
            break;
        case Event.F1:
            // Pucacina p = new Pucacina();
            Thread t = new Thread(this);
            t.start();
            break;
        }
        // System.out.println("x="+x);
        repaint();
        return true;
    }

    public void precrtaj(){
        System.out.println("Precrtava");
        repaint();
    }



    public  void paint (Graphics g){

        this.setSize(500,500);

        g.setColor(Color.black);
        //g.drawRect(x,480,20,20);
        g.fillRect(x,480,20,20);
        g.fillRect(x+7,475,6,5);
        g.setColor(Color.yellow);
        //System.out.println("Ovde se treba izcrtati:  y1="+y1+"y2="+y2+" x="+x+" left="+left);
        g.drawLine(xMet+8,y1,xMet+8,y2);

        System.out.println("x= " +mt.getXm()+" y="+mt.getYm());
        g.drawOval(mt.getXm(),mt.getYm(),35,35);
        //System.out.println("Crta");
    }

}

class Meteori implements Runnable{
    int xm=45,ym;
    Pucacina pc=null;

    public void run() {


        for(int i=0;i<30;i++){
            setYm(i*10);
            System.out.println("ym->"+ym);
            pc.precrtaj();
            try{
                Thread.sleep(100);
            }
            catch(Exception e){}
        }
    }

    public void setPucacina(Pucacina pucacina) {
        this.pc = pucacina;
    }

    public void setXm(int xm){
        this.xm=xm;
    }

    public int getXm(){
        return this.xm;
    }

    public void setYm(int ym){
        this.ym=ym;
    }

    public int getYm(){
        return this.ym;
    }

}


Slicno je resenje kao i prosli put. Razmisli :)
Pozzz

edit: Mali savet: Trudi se da ti se svaka klasa nalazi u posebnom fajlu i razdvoji thread klase
od main klase appleta.
Sad mu nije nista, ubio si ga k'o zeca...
 
Odgovor na temu

voxi

Član broj: 67178
Poruke: 328
*.skaut.net.



Profil

icon Re: Problem neverovatno glup o nelogican bar meni02.01.2007. u 22:40 - pre 210 meseci
E svaka cast eliko HVALA skonto sam sta je to jest bilo mi je jasno i pre da nije isti objekat to jest nid od potrebnog objekta ali nisam skonto kako da resim tako da mi je ovo puno pomoglo jos jednom veliko HVALA

I jos jednom amlo pitanje kod appleta main klas to jest f-ja je sta init ili paint il sta vec koliko sam primetio prov se izvrsi citava init f-ja a onda paint

Svako dobro Toxter
 
Odgovor na temu

djalfirevic

Član broj: 76932
Poruke: 497
*.dynamic.sbb.co.yu.



Profil

icon Re: Problem neverovatno glup o nelogican bar meni03.01.2007. u 19:00 - pre 210 meseci
Citat:
voxi: E svaka cast eliko HVALA skonto sam sta je to jest bilo mi je jasno i pre da nije isti objekat to jest nid od potrebnog objekta ali nisam skonto kako da resim tako da mi je ovo puno pomoglo jos jednom veliko HVALA

I jos jednom amlo pitanje kod appleta main klas to jest f-ja je sta init ili paint il sta vec koliko sam primetio prov se izvrsi citava init f-ja a onda paint

Svako dobro Toxter


init() metodu poziva Web citac prilikom ucitavanja apleta u JVM Web citaca.
paint() metodu poziva Web citac kada je potrebno da aplet iscrta svoj sadrzaj.

Uvek se prvo init() poziva pa onda paint().
 
Odgovor na temu

voxi

Član broj: 67178
Poruke: 328
*.net
Via: [es] mailing liste



Profil

icon Re: Problem neverovatno glup o nelogican bar meni06.01.2007. u 18:24 - pre 210 meseci
Upomocc !
Zasto nece da upise u fajl ovaj kod dole zanli neko ziv!



void upisUFajl(){
System.out.println("Pocinenje upis");
try{



BufferedWriter out = new BufferedWriter(new
FileWriter("Upisi.txt",true));

out.write("Nece da upisee");
out.flush();
out.close();


}
catch(IOException e){System.out.println("greska");}
 
Odgovor na temu

voxi

Član broj: 67178
Poruke: 328
*.net
Via: [es] mailing liste



Profil

icon Re: Problem neverovatno glup o nelogican bar meni06.01.2007. u 19:07 - pre 210 meseci
Skonto sam sada radi

pozz
 
Odgovor na temu

voxi

Član broj: 67178
Poruke: 328
*.net
Via: [es] mailing liste



Profil

icon Re: Problem neverovatno glup o nelogican bar meni07.01.2007. u 12:19 - pre 210 meseci
Zasto kada stvim BufferedWriter out = new BufferedWriter(new
FileWriter("Upisi.txt",true)); nece da kreira fajl ako ne navedem tacnu
putnju treba mi to hitno
 
Odgovor na temu

[es] :: Java :: Problem neverovatno glup o nelogican bar meni

[ Pregleda: 2958 | Odgovora: 18 ] > FB > Twit

Postavi temu Odgovori

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