Problème d'affichage de jbouton

Fermé
Chrystelle_6289 Messages postés 1 Date d'inscription lundi 25 avril 2022 Statut Membre Dernière intervention 29 avril 2022 - Modifié le 25 avril 2022 à 14:46
baladur13 Messages postés 46403 Date d'inscription mercredi 11 avril 2007 Statut Modérateur Dernière intervention 28 avril 2024 - 29 avril 2022 à 11:19
Bonjour,

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;
 }


}

Configuration: Windows / Edge 100.0.1185.50

1 réponse

baladur13 Messages postés 46403 Date d'inscription mercredi 11 avril 2007 Statut Modérateur Dernière intervention 28 avril 2024 13 224
29 avril 2022 à 11:19
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.
0