Je rencontre un problème lors de l'affichage de boutons. Je souhaite afficher les boutons à un endroit précis. Comme vous pouvez le voir ci-dessous, les boutons se sont déplacés mais ils sont créés en double voir triple. Si quelqu'un voit d'où vient le problème ça m'aiderait bcp !
Merci d'avance pour vos réponses
package graphique;
import java.util.ArrayList;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import data.Individu;
import data.Point;
import data.ReseauI;
import engine.process.Initialisation;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.io.IOException;
public class Map extends JPanel {
private static final long serialVersionUID = 1L;
private static final int longueur_point = 20;
private static final int largeur_point = 20;
private static Individu in;
protected void paintComponent(Graphics g) {
super.paintComponent(g);
ArrayList<Point> points = Initialisation.getP();
ArrayList<Individu> reseau = ReseauI.getIndividus();
int c = 0;
for (Point p : points) {
Map.setIn(reseau.get(c));
g.setColor(Color.YELLOW);
creatAction(reseau,p,c);
g.fillOval(p.getX(),p.getY(),largeur_point,longueur_point);
c++;
}
this.setBackground(Color.BLUE);
this.setVisible(true);
}
public void creatAction(ArrayList<Individu> reseau, Point p, int c) {
JButton b = new JButton(Integer.toString(c));
this.add(b);
b.addActionListener(new ButtonAction());
b.setBackground(Color.YELLOW);
b.setBounds(p.getX(),p.getY(),20,20);
}
public static void main (String args[]) throws IOException {
JFrame app = new JFrame("Smiley App");
ArrayList<Individu> reseau = Initialisation.creatReseau();
ArrayList<Point> points = Initialisation.creatPoints(reseau);
Initialisation.setP(points);
Map m = new Map();
app.add(m);
app.setSize(800, 800);
app.setLocationRelativeTo(null);
app.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
app.setVisible(true);
}
private class ButtonAction implements ActionListener{
public void actionPerformed(ActionEvent e) {
new Board3("Profil",Map.getIn());
setVisible(true);
}
}
public static Individu getIn(){
return in;
}
public static void setIn(Individu in) {
Map.in = in;
}
}
Bonjour
Puisque vous dites dans une alerte avoir résolu le problème par vous-même, il serait gentil de votre part de nous donner la solution.
Cette dernière pouvant, qui sait, servir à d'autres internautes confrontés à ce type de problème.
Merci d'avance pour eux.