[ valemetal @ 14.06.2008. 16:00 ] @
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) { }

}

[ valemetal @ 19.06.2008. 12:43 ] @
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
[ Java Beograd @ 19.06.2008. 13:52 ] @
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) { }


}
[ Java Beograd @ 19.06.2008. 13:54 ] @
Takođe, umesto mouseListenera, možeš da koristiš mouseAdapter, elegantnije je.
[ valemetal @ 20.06.2008. 16:11 ] @
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.