//gra Catch the rain
import javax.swing.;
import javax.imageio.;
import java.io.*;
import javax.imageio.;
import java.awt.event.;
import java.awt.;
import javax.swing.;
public class Gra2 extends Frame {
//static MouseEvent eM = null;
//public void addListener(TypeListener el)
static Label czas = new Label();
static Label punkty = new Label();
private Image img;
int iloscel=7;
static int iloscpkt=0;
static int iloscczasu=200;
Kropelka[] kr = new Kropelka[iloscel];
Thread [] t=new Thread[iloscel];
public Gra2 (String nazwa)throws IOException {
//addMouseListener(this);
for (int i=0;i<iloscel;i++) {
kr[i] = new Kropelka ((int)(Math.random()50+10),i);
kr[i].czo=i2000;
//kr[i].addActionListener(new B1());
//kr[i].addActionListener(new Sluchacz());
}
//super ("Gra");
setResizable(false);
setSize(800,600);
setLocation(100,100);
//setIgnoreRepaint(true);
File sourceimage = new File(nazwa);
img = ImageIO.read(sourceimage);
};
public void paint (Graphics g)
{
//draw the image
if( img != null)
g.drawImage(img,0,0, this);
g.translate(0,25);
for (int i=0;i<iloscel;i++) {
t[i] = new Thread(kr[i]);
}
for (int i=0;i<iloscel;i++){
t[i].start();
}
for (int i=0;i<iloscel;i++){
kr[i].spada(g);
}
try
{
Thread.sleep(100);
}catch (InterruptedException ie)
{
System.out.println(ie.getMessage());
};
//reapint do poprawienia
repaint(1,0,0,800,600);
//invalidate();
}
public static void main (String [] args) throws IOException
{
Frame gra = new Gra2 ("pn.jpg");
gra.setLayout(null);
Zegar zgr = new Zegar();
zgr.start();
//tu ustawiam kolor czcionki
czas.setForeground(Color.yellow);
punkty.setText(""+iloscpkt);
punkty.setBackground(Color.orange);
czas.setBackground(Color.orange);
// punkty.setVerticalTextPosition(JLabel.BOTTOM);
//punkty.setHorizontalTextPosition(JLabel.CENTER);
Font f =new Font("sansserif", Font.BOLD, 30);
//f.setColor(Color.blue);
//setColor(Color.blue);
//f.setColor(Color.black);
punkty.setFont(f);
czas.setFont(f);
czas.setBounds(700,50,80,40);
punkty.setBounds(10,50,100,40);
punkty.setVisible(true);
czas.setVisible(true);
gra.add(punkty);
gra.add(czas);
gra.addWindowListener(new WindowAdapter(){
public void windowClosing(WindowEvent e){
System.out.println("Dziekujemy za prace z programem...");
System.exit(0);
}
});
gra.setVisible(true);
}
public boolean mouseDown(Event e, int xm, int ym ) {
punkty.setBackground(Color.green);
return true;
}
}
class Zegar extends Thread {
public void run() {
for (; Gra2.iloscczasu > 0; Gra2.iloscczasu--)
{
Gra2.czas.setText(Gra2.iloscczasu/60+":"+Gra2.iloscczasu%60);
try
{
Thread.sleep(1000);
}catch (InterruptedException ie)
{
System.out.println(ie.getMessage());
};
}
}
}
class Kropelka extends JPanel implements Runnable //,ActionListener
{
// setIgnorerepaint(true);
int rozmiar;
int numer;
// public static int korx;
boolean widoczna,niezaznaczona=true;
int y=60;
int x=(int)(Math.random()*600)+100;
//int xk=x+rozmiar;
int ilpk;
int czo;
boolean ustaw=false;
public boolean mouseDown(Event e, int xm, int ym ) {
ustaw=true;
return true;
}
public Kropelka(int rozmiar,int numer){
super();
this.rozmiar=rozmiar;
this.numer=numer;
ilpk=(100-rozmiar)/2;
}
public void spada (Graphics g) {
if(niezaznaczona){
if(widoczna) {
if(y<399) {
if (ustaw){
g.setColor(Color.blue);
}
g.fillOval (x,y,rozmiar,rozmiar);
//g.addActionListener(new Sluch(numer));
if (widoczna) y++;
}
}
}
};
public void run () {
// int x;
try
{
Thread.sleep(czo);
}catch (InterruptedException ie)
{
System.out.println(ie.getMessage());
};
widoczna=true;
}
}
Dla tego kodu chciałem, aby kliknięcie w czarną kropkę zmieniało ją na niebeską. Ktoś wie, jak to zrobić?