Šta je novo?

Loto program u Javi

HiMan

Čuven
Učlanjen(a)
26.12.2002
Poruke
80
Poena
609
Bilo je ranije reci o ovakvom programu, a posto sada na faxu radimo Javu napravio sam mali program radi vezbe. Inace, pocetnik sam.
Dole je source i .jar executable fajlovi. Ako ima neko vremena da prodiskutujemo o kodu, tj. da mi da neke savete bio bih zahvalan. Znaci da se malo prica o Javi.
 

Prilozi

  • Loto.txt
    12 KB · Pregleda: 302
  • Loto.zip
    2.3 KB · Pregleda: 254
Poslednja izmena:
pa za pocetak... ako ti je source u ovom txt fajlu reci iz cega da ga citam, posto txt sigurno nije |>>
 
Opet ja... rename .txt u .doc i moze da se otvori... sad sam gledao kod...

hm ok prva procedura crta prozor i elemente, to nikad nisam ni naucio rucno da radim, kad svi bolji gui editori rade sami...

ne kontam sta ce ti i mouseclicked (prazan) i mousepressed?

no sad sama procedura za generisnje...
koristis while, proveravas da velicina bude 7, trpas ih u hash, pa to prebacujes u niz, pa taj niz sortiras rucno...
ono sto si sigurno mogao bolje je da uzmes for do 7 i stavljas direkt u niz, pa da ga sortiras posle rucno...
mada cak mislim da ima nacina da se hash sortira automatski kad se pretvara u niz, samo nemam api pri ruci da nadjem...
nesto mi i sa ovim pretvaranjem tipova deluje da imas previse, mada java tako uglavnom i radi...
 
Prvo, umesto da implementiraš MouseListener, ako klasa ne treba da nasledi ništa drugo, možeš da naslediš MouseAdapter da ne bi morao da definišeš prazne metode za događaje.

Ni meni nije jasno zašto si koristio LinkedHashSet a ne običan niz (ako si baš hteo da koristiš skup, dovoljan bi ti bio običan HashSet pošto ti nije bitan redosled kojim si ubacivao elemente.

Zatim ukoliko nije baš neophodno da pokažeš svoje znanje BubbleSort algoritma bolje je da koristiš gotove metode iz java.util.Arrays

Uglavnom, evo kako bih ja uradio (samo delovi koda koji su promenjeni)...
Kod:
class Loto extends MouseAdapter {
	public void mouseClicked(MouseEvent e){		
		Random r = new Random();
		int[] niz = new int[7];
		int cnt = 0;
		while (cnt < 7){
			int i = r.nextInt(40);
			if(i>0){
				niz[cnt] = i;
				cnt++;
			}
		}
		
		java.util.Arrays.sort(niz);
	
		for(int i=0; i<7; i++){
			tekst[i].setText(new Integer(niz[i]).toString());
		}
	}
}
 
U word padu se otvara.
Sto se tice praznih metoda moram da ih implementiram zbog interfejsa MouseListener. Mozda bi bilo bolje preko Adaptera?
Lakse mi je preko HashSeta jer je nemoguce ubaciti dva ista elementa. while petlja je morala jer ako stavim for do 7 i javi se isti element ili 0 imao bih manjak elemenata.
Pokusao sam da koristim TreeSet koja automatski sortira ali nije radila. Ne znam zasto.
Konvertovanje u niz je zbog lakseg ispisa.

P.S. Koji je dobar Visual Editor? Probao sam u Eclipse-u da ga podesim ali ne radi.
 
Sad videh post. Ovo je super.
Jedino sto kad sam pokusao preko niza desavalo se da ubaci 2 ista elementa pa sam zato koristio LinkedHashSet(ne znam zasto bas ovu klasu).
Bubble sort je zbog ispiranja mozga na faksu (teraju nas sve rucno).
 
Poslednja izmena:
Heh, vidiš šta se desi kad čovek ne misli :d
Uopšte mi nije palo na pamet da u lotou ne mogu da budu dva ista broja :S:

U svakom slučaju...
Kod:
public void mouseClicked(MouseEvent e) {
	Random r = new Random();
	HashSet<Integer> skup = new HashSet<Integer>(7);
	int cnt = 0;
	while (cnt < 7) {
		int i = r.nextInt(40);
		if(i > 0)
			if (skup.add(i))
				cnt++;
	}
	Integer[] niz = new Integer[7];
	skup.toArray(niz);
	java.util.Arrays.sort(niz);
	
	for(int i=0; i<7; i++){
		tekst[i].setText(niz[i].toString());
	}
	skup.clear();
}
 
Ne radi mi HashSet<Integer> skup = new HashSet<Integer>(7);
Jel to neki novi fazon koji radi samo u Javi 1.5?

Sto se tice jar executable znam kako se pravi u Eclipse-u.
Kad kompajliras .java fajl ides na File>Export pa izaberes jar file, zatim dodas klasu koju zelis i klikces next dok ne stignes do koraka gde dodajes klasu u kojoj je main metoda i to je to.
U principu sve je zasnovano na wizardu.

Sto se tice VE instalirao sam ga ali ne radi. Jel to zato sto sam za one druge dve komponente instalirao Runtime Environment? Ili nisam uskladio verzije.
 
HiMan je napisao(la):
Ne radi mi HashSet<Integer> skup = new HashSet<Integer>(7);
Jel to neki novi fazon koji radi samo u Javi 1.5?
U dokumentaciji piše da postoji od verzije 1.2. Stvarno se ne sećam da li je u verzijama pre 1.5 bilo nekih problema sa takvim konstrukcijama.
 
To je parametrizirana klasa, i taj feature postoje tek od jave 5 (java generics).
 
Hvala svima na odgovorima. Jos samo da mi neko pojasni za VE.
 
Evo, dok se ne javi neko ko ima vise iskustva sa Eclipse -- cini mi se da je za rad VE, potrebno da instaliras i GEF, ako ne i EMF plugin. I da, obrati paznju na verzije.
 
e da ja sam upravo reinstalirao eclipse
stavio sam sledece ecl 3.1m2 (neka prerelease, ali dobro radi)
ve 1011
gef i emf

sad kad mu kazem da mi pravi vizuelnu klasu onda on to lepo odradi...
medjutim ne generise mi bas kompletan main itd, ko sto to ima jdeveloper obicaj...
 
Ne znam, meni je radilo ok (swing/swt aplikacije). Ako se dobro secam, ako pravis Swing visual klasu (npr. nasledjuje JFrame, Applet...) onda se citavo crtanje radi iz konstruktora - main() ce ti napraviti, samo ako stikliras u wizardu, i to ce najverovatnije biti prazna metoda, tako da onda i ne treba da bude kompletan main. Opet, cini mi se da nece biti prazan, ako pravis SWT visual klasu - onda ce crtanje raditi iz main().
Davno sam radio sa Eclipse, tako da ne mogu biti potpuno siguran, ali mislim da nisam pogresio.
Sto se tice JDevelopera, je l' to onaj preview sto se deli kod Surle iz IS (koji nije na mene ostavio neki utisak, sto zbog cene, sto zbog navike na druge alate), ili neka novija/kompletnija verzija?

EDIT: Evo, instalirao sam i pokrenuo Eclipse, za SWT->Application, generise main() i dobijes pravu aplikaciju koju mozes da pokrenes, dok za Swing crtanje radi iz konstruktora, a main() ostane prazan - tako da dobijes funkcionalnu klasu, ali ne i aplikaciju - tako da si u pravu, moras dopuniti main(), ili napraviti novu klasu koja je "pokretacka".
 
Poslednja izmena:
ja sam svukao sa neta jdeveleper, najsveziji...

fora je sto smes besplatno da ga koristis za razvoj aplikacija, ali ne i za finalni produkt... e sad, moze da se bude snalazljiv na razne nacine...

eclipse mi i evente (recimo click na dugme) malo drugacije odradi nego sto sam navikao itd... mada evo sledece sto cu raditi u javi, radim iz eclipsa cisto da se naviknem...
 
Za one koji nisu odradili svoj domaci zadatak: JAVA nije proceduralni jezik i NEMA procedure. Samo METODE. ;)
 
deluje mnogo dobro, ali ima komercijalni momenat, koji moze da zasmeta...
 
Koliko vidim, pravimo nekomercijalan softver za fakultet. Prema tome...
A za svaku komercijalnu upotrebu izvoli platiti ako zaradjujes na tome. Ako ne zelis, nadji nesto open source, mada bolje od ovoga tesko...
 
Nazad
Vrh Dno