» »

Java problem

Java problem

Dusan_83 ::

V Javi se malo "igram" imam sledeci problem. Graficno bi rad iz dolocene datoteke prebral stevilke in potem bi mi izrisovalo nekaksen graf (izgledalo bi kot animacija). Problem je, da mi je vse uspelo narediti, vendar pa mi s Threadi nikakor ne uspe narediti tako, da bi mi recimo vsako sekundo izrisalo stolpic. Program mi sicer izrise koordinatno os, ampak potem ne zacne vsako sekundo risati. Spodaj prilagam izsek iz programa. Za pomoc se zahvaljujem.

public void paintComponent(final Graphics g)
{

super.paintComponent(g);

g.drawString("pH",75,20);

g.drawLine(40,50,40,330);


for (int i=0; i < =14; i++)
{
g.drawLine(35,50+i*(280/14),45,50+i*(280/14));
g.drawString(Integer.toString(14-i),15,55+i*20);
}


new Thread(new Runnable()
{
public void run()
{
while(true)
{
try
{
BufferedReader in=new BufferedReader(new FileReader("primer.xls"));
String line=in.readLine();
while (true)
{
line=in.readLine();
if (line==null) {break;}
StringTokenizer tok=new StringTokenizer(line);
String ph=tok.nextToken(); ph.trim();
System.out.println(ph);
g.fillRect(50,330-Integer.parseInt(ph)*(280/14),80,Integer.parseInt(ph)*(280/14));
Thread.sleep(1000);
}
}

catch (Exception e)
{
System.out.println("Napaka:" +e.toString());
}
}
}
}).start();

}


[Naredil kodo nekoliko bolj berljivo -OwcA]
  • spremenilo: OwcA ()

YuLcE ::

iz tega ven ti kaj težko povem, kje bi lahko bila napaka.
če želiš, mi na email pošlji kodo in ti bom program popravil, ker iz dane kode se napaka (vsaj iz moje strani) ne da ugotovit.

sicer pa... zakaj delaš z anonimnimi notranjimi razredi?!
naredi ta del bolj razločno (externi razred, pa daj da v konstrukturju prejme referenco na objekt v katerem naj ima nit efekt in preko reference spreminjaš vrednosti) ... kaj hitro se pri tem v Javi zatakne. jaz osebno se jih zelooo izogibam. naredi si izpis v while zanki, da ti vse kar z tokenizerjem prebere izpiše na System.out, tako boš preveril, če sploh nit "dela kot je treba".

LP

Nerdor ::

Dule007, tako bom rekel Eclipse 2.1, ki ga dobis na Eclipse.org je zakon zadeva, ki ti pove kaj si narobe naredil in kako popraviti...
Instalirej si ta editor (je zastojn in zmogljiv kot JBuilder) in pogej, kaj ti bo CodeSense povedal..

Men je svetoval, da ne morem imeti, dveh public classov, samo enega v *.java datoteki.. ali pa vsak public class v svoji *.java datoteki.. :8)

Se marski kaj najde, predvsem veeeeliikko preber literature od Mesojedca - Java in Internet do kakih J2EE buhl/biblj.
Mogoce kake PowerPoint Slajde najd, ki ti razlagajo korak po korak, kako se kaj programira pravilno in kaj narobe :\

Dusan_83 ::

Se opravicujem, ker tako pozno odpisujem... Hvala obema za odgovor.

@YuLcE
Problem je ravno v tem, ker ne znam to narediti s threadi in grafiko. Ali mi sploh ne izpisuje ali pa mi dobi podatke iz datoteke vsakih xy milisekund, potem pa mi izrise vse skupaj v trenutku. V bistvu mi samo to ne dela kot bi moralo, ostalo bi znal narediti. Da bi pa bolj razlocno napisal kodo, pa tudi nimam ideje.

Tvojega maila pa nimam, kamor bi ti lahko poslal.

Pa se za en nasvet bi prosil. Katero knjigo priporocas/priporocate za ucenje Jave in da je na dovolj visokem nivoju in da je v PDF obliki na netu (kazza ali osel :D )

nevone ::

Probej klicat repaint().

o+ nevone

YuLcE ::

@dule007:
glej, glede jave je tako, da sicer če pred tem z nitmi še nisi imel veliko opravka je mala verjetnost da ti bodo takoj "šle".

Moj nasvet je,da se odpraviš na java.sun.com, in si tam ogledaš tutoriale z nitmi. Sicer imam jaz en svoj primer, kjer niti grafično rišejo na panel v realnem času. če te zanima, mi piši na denis.justinek@uni-mb.si, pa ti bom kasneje bolj točno povedal kaj in kako ter poslal primer kako se z nitmi dela. Na java.sun.com imaš veliko primerov, kateri ti bodo zagotovo dali potrebno znanje za obvladanje niti, kaj več pa ti priporočam naboljši način učenja - experimentiranje. vsi smo bili enkrat tam.

LP


Vredno ogleda ...

TemaSporočilaOglediZadnje sporočilo
TemaSporočilaOglediZadnje sporočilo
»

[Java] Zasnova shoot em up igre

Oddelek: Programiranje
111195 (874) PecenkA
»

[C#]Analogna ura

Oddelek: Programiranje
152735 (2372) cekr
»

[java]parseInt težava

Oddelek: Programiranje
81030 (933) fiction
»

[JAVA] zaustavitev niti (threadov)

Oddelek: Programiranje
223172 (3172) morbo
»

branje iz fajla v javi

Oddelek: Programiranje
51125 (1065) Lizard

Več podobnih tem