Bonjour à tous
J'ai besoin de vous. Je voudrais cliquer par exemple dans le petit cercle vert au centre pour afficher le chiffre 25 sans que quand je clique sur le petit cercle rouge il m'affiche aussi 25.
Je vous met l'image de ma cible ainsi que le code
Code :
import java.awt.*;
import javax.swing.*;
import java.awt.event.*;
import java.awt.event.MouseListener;
import java.awt.event.MouseEvent;
public class Plateau extends JPanel implements Runnable, MouseListener
{
public int x,y,i,j;
public int b501,b502;
public int b251,b252;
public int bs11,bs12;
public int bt1,bt2;
public int bs21,bs22;
public int bd1,bd2;
public int taille,rayon;
public float larg2,haut2;
public Font chiffre;
public String nb[] = {"6","10","15","2","17","3","19","7","16","8","11","14","9","12","5","20","1","18","4","13"};
private Thread t;
public Plateau(int x, int y, int dim)
{
this.x = x;
this.y = y;
taille = dim;
addMouseListener(this);
}
public void init()
{
}
public void paintComponent(Graphics g)
{
Graphics2D g2 =(Graphics2D) g;
chiffre = new Font("Courier", Font.BOLD, 40);
larg2 = haut2 = taille/2;
rayon = 280;
//MODE Qualite et Anti-Aliasing
RenderingHints qualityHints = new RenderingHints
(
RenderingHints.KEY_ANTIALIASING,
RenderingHints.VALUE_ANTIALIAS_ON
);
qualityHints.put
(
RenderingHints.KEY_RENDERING,
RenderingHints.VALUE_RENDER_QUALITY
);
g2.setRenderingHints(qualityHints);
g2.setColor(Color.lightGray);
g2.fillOval(x, y, taille, taille);
g2.setColor(Color.red); //zone double
for(i=0;i<360;i=i+36)
g2.fillArc((taille/2)-(taille/5*2),(taille/2)-(taille/5*2),(taille/5*4),(taille/5*4),i+9,18);
g2.setColor(Color.green); //zone double
for(i=0;i<360;i=i+36)
g2.fillArc((taille/2)-(taille/5*2),(taille/2)-(taille/5*2),(taille/5*4),(taille/5*4),i-9,18);
g2.setColor(Color.black); //zone simple 1
for(i=0;i<360;i=i+36)
g2.fillArc((taille/2)-(taille/27*10),(taille/2)-(taille/27*10),(taille/27*20),(taille/27*20),i+9,18);
g2.setColor(Color.white); //zone simple 1
for(i=0;i<360;i=i+36)
g2.fillArc((taille/2)-(taille/27*10),(taille/2)-(taille/27*10),(taille/27*20),(taille/27*20),i-9,18);
g2.setColor(Color.red); //zone triple
for(i=0;i<360;i=i+36)
g2.fillArc((taille/2)-(taille/19*5),(taille/2)-(taille/19*5),(taille/19*10),(taille/19*10),i+9,18);
g2.setColor(Color.green); //zone triple
for(i=0;i<360;i=i+36)
g2.fillArc((taille/2)-(taille/19*5),(taille/2)-(taille/19*5),(taille/19*10),(taille/19*10),i-9,18);
g2.setColor(Color.black); //zone simple 2
for(i=0;i<360;i=i+36)
g2.fillArc((taille/2)-(taille/42*10),(taille/2)-(taille/42*10),(taille/42*20),(taille/42*20),i+9,18);
g2.setColor(Color.white); //zone simple 2
for(i=0;i<360;i=i+36)
g2.fillArc((taille/2)-(taille/42*10),(taille/2)-(taille/42*10),(taille/42*20),(taille/42*20),i-9,18);
g2.setColor(Color.green); //centre 25
g2.fillOval((taille/2)-(taille/24),(taille/2)-(taille/24),(taille/12),(taille/12));
g2.setColor(Color.red); //centre 50
g2.fillOval((taille/2)-(taille/48),(taille/2)-(taille/48),(taille/24),(taille/24));
}
public void mouseClicked(MouseEvent e){}
public void mouseEntered(MouseEvent e) {}
public void mouseExited(MouseEvent e) {}
public void mousePressed(MouseEvent e){}
public void mouseReleased(MouseEvent e){}
public void run()
{
try{
while (t.isAlive())
{
//t.sleep(100);
}
t.sleep(1);
}catch(InterruptedException e){}
}
}
PS : il se peut qu'il y ait des erreurs et la cible se trouve dans une JFrame