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

Brojanje klikova na aplet

[es] :: Java :: Brojanje klikova na aplet

[ Pregleda: 2608 | Odgovora: 4 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

valemetal
Valentino Kolev
Pirot

Član broj: 148167
Poruke: 6
194.106.163.*



Profil

icon Brojanje klikova na aplet14.06.2008. u 16:00 - pre 146 meseci
Napravio sam aplet koji simulira bacanje kockica kada se klikne na aplet. Hoću da izbacuje poruku kada se pojave iste kockice tj. kada je x = y, i da pokaže koliko puta je kliknuto dok se to nije desilo. Ne znam kako da izbrojim klikove. Unapred hvala. Evo koda:

import java.awt.*;
import java.awt.event.*;
import java.applet.*;

public class Aplet extends Applet implements MouseListener
{

public void paint(Graphics g){

addMouseListener(this);

g.setColor(Color.white);
g.fillRect(100,100,40,40);
g.setColor(Color.black);
g.drawRect(100,100,39,39);
g.setColor(Color.white);
g.fillRect(200,100,40,40);
g.setColor(Color.black);
g.drawRect(200,100,39,39);


int x,y;

x = (int) (Math.random() * 6 + 1);
y = (int) (Math.random() * 6 + 1);

if (x == 1) {
g.fillOval(115, 115, 10, 10);

}
if (x == 2) {
g.fillOval(105, 105, 10, 10);
g.fillOval(125, 125, 10, 10);

}
if (x == 3) {
g.fillOval(115, 115, 10, 10);
g.fillOval(105, 105, 10, 10);
g.fillOval(125, 125, 10, 10);

}
if (x == 4) {
g.fillOval(105, 105, 10, 10);
g.fillOval(105, 125, 10, 10);
g.fillOval(125, 105, 10, 10);
g.fillOval(125, 125, 10, 10);

}
if (x == 5) {
g.fillOval(105, 105, 10, 10);
g.fillOval(105, 125, 10, 10);
g.fillOval(125, 105, 10, 10);
g.fillOval(125, 125, 10, 10);
g.fillOval(115, 115, 10, 10);

}
if (x == 6) {
g.fillOval(105, 105, 10, 10);
g.fillOval(105, 125, 10, 10);
g.fillOval(125, 105, 10, 10);
g.fillOval(125, 125, 10, 10);
g.fillOval(105, 115, 10, 10);
g.fillOval(125, 115, 10, 10);

}

if (y == 1) {
g.fillOval(215, 115, 10, 10);
}
if (y == 2) {
g.fillOval(205, 105, 10, 10);
g.fillOval(225, 125, 10, 10);
}
if (y == 3) {
g.fillOval(215, 115, 10, 10);
g.fillOval(205, 105, 10, 10);
g.fillOval(225, 125, 10, 10);
}
if (y == 4) {
g.fillOval(205, 105, 10, 10);
g.fillOval(205, 125, 10, 10);
g.fillOval(225, 105, 10, 10);
g.fillOval(225, 125, 10, 10);
}
if (y == 5) {
g.fillOval(205, 105, 10, 10);
g.fillOval(205, 125, 10, 10);
g.fillOval(225, 105, 10, 10);
g.fillOval(225, 125, 10, 10);
g.fillOval(215, 115, 10, 10);
}
if (y == 6) {
g.fillOval(205, 105, 10, 10);
g.fillOval(205, 125, 10, 10);
g.fillOval(225, 105, 10, 10);
g.fillOval(225, 125, 10, 10);
g.fillOval(205, 115, 10, 10);
g.fillOval(225, 115, 10, 10);

}

}

public void mousePressed(MouseEvent e)
{
repaint();
}

public void mouseReleased(MouseEvent e) { }
public void mouseClicked(MouseEvent e) { }
public void mouseEntered(MouseEvent e) { }
public void mouseExited(MouseEvent e) { }

}

 
Odgovor na temu

valemetal
Valentino Kolev
Pirot

Član broj: 148167
Poruke: 6
194.106.163.*



Profil

icon Re: Brojanje klikova na aplet19.06.2008. u 12:43 - pre 146 meseci
Izgleda da sam loše formulisao pitanje, kad niko ne odgovara. Hajde da probam ovako:
Kako da izbrojim koliko puta se izvršio repaint() metod? Kako da povežem mousePressed() i paint() metod?
Odgovor na bilo koje od ovih pitanja bi mi pomogao. Hvala
 
Odgovor na temu

Java Beograd
Novi Beograd

Član broj: 11890
Poruke: 8148
212.200.68.*



+9564 Profil

icon Re: Brojanje klikova na aplet19.06.2008. u 13:52 - pre 146 meseci
Ma dobro si ti formulisao pitanje, nego čim sam pogledao tvoj kod, rekoh, UH, pa zatvorih stranu. Ti kao da si učio Cobol ili neki sličan jezik, pa onda uzeo da "programiraš" u Javi. To se u mom okruženju zvalo "kobolirati u javi". Naravno, nisi jedini, (me, myself and I) nemoj da me pogrešno shvatiš.

Odgovor na tvoje pitanje je: deklariši promenljivu na nivou celog apleta, pa je inkrementiraj u telu funkcije mousePressed.

Odgovor na pitanje koje nisi postavio: definiši metod private void crtajKockicu(int brojNaKockici, int xKoordinata, int yKoordinata, Graphics g), pa taj metod pozivaj iz paint predajući koordinate leve ili desne kockice. Time ćeš da skratiš kod za pola. Umesto if-ova koristi case, a mogao bi i crtanje pojedinih brojeva da izvučeš u posebne metode.
addMouse listener ti je na potpuno pogrešnom mestu...

Otprilike ovako:
Code:

import java.awt.*;
import java.awt.event.*;
import java.applet.*;

public class Aplet extends Applet implements MouseListener {


private int brojBacanja = 0;
publoic void init() {
    addMouseListener(this);
}

public void paint(Graphics g) {


int vrednostPrveKockice;
int vrednostDrugeKockice;

vrednostPrveKockice = (int) (Math.random() * 6 + 1);
vrednostDrugeKockice = (int) (Math.random() * 6 + 1);

crtajPozadinu();
crtajKockicu(vrednostPrveKockice, [koordinata_po_x_osi_kao_pocetna_za_kockicu_1], [koordinata_po_y_osi_kao_pocetna_za_kockicu_1], g);
crtajKockicu(vrednostDrugeKockice, [koordinata_po_x_osi_kao_pocetna_za_kockicu_1], [koordinata_po_y_osi_kao_pocetna_za_kockicu_1], g);
}

private void crtajPozadinu(Graphics g) {
...
}

private void crtajKockicu(int vrednost, int x, int y, Graphics g) {
...
}


public void mousePressed(MouseEvent e)
{
++brojBacanja;
repaint();
}

public void mouseReleased(MouseEvent e) { }
public void mouseClicked(MouseEvent e) { }
public void mouseEntered(MouseEvent e) { }
public void mouseExited(MouseEvent e) { }


}

Pametni ljudi su uvek puni sumnji. Samo su budale uvek savršeno sigurne.
 
Odgovor na temu

Java Beograd
Novi Beograd

Član broj: 11890
Poruke: 8148
212.200.68.*



+9564 Profil

icon Re: Brojanje klikova na aplet19.06.2008. u 13:54 - pre 146 meseci
Takođe, umesto mouseListenera, možeš da koristiš mouseAdapter, elegantnije je.
Pametni ljudi su uvek puni sumnji. Samo su budale uvek savršeno sigurne.
 
Odgovor na temu

valemetal
Valentino Kolev
Pirot

Član broj: 148167
Poruke: 6
194.106.163.*



Profil

icon Re: Brojanje klikova na aplet20.06.2008. u 16:11 - pre 146 meseci
Hvala na odgovoru. Sada su mi mnoge stvari jasnije. Nisam shvatao dosta toga jer sam tek počeo sa učenjem Jave.
Ovo mi je mnogo pomoglo, a koristiće mi i ubuduće.
 
Odgovor na temu

[es] :: Java :: Brojanje klikova na aplet

[ Pregleda: 2608 | Odgovora: 4 ] > FB > Twit

Postavi temu Odgovori

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