Bonjours alors voici mon probleme j'ai crée une class bouton extends JButton puis dedent j'ai mis un fillRect(0,0,300,80) sauf que il ne veu pas prendre les dimension que je lui demande de prendre peu importe se que je lui donne comme dimension il reste tout petit.

voici un image du programe avec le bouton en bas qui refuse de prendre les dimension demander: Nom : 4f71709575afc5761bb1623e3a9ec815.png
Affichages : 109
Taille : 14,0 Ko

voici ma classe fenetre:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
 
import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.Dimension;
 
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JPanel;
 
public class fenetre extends JFrame 
{
  private Panneau pan = new Panneau();
  private bouton b = new bouton();
  private JPanel container = new JPanel();
 
  public fenetre() 
  {
    this.setTitle("Animation");
    this.setSize(300, 300);
    this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    this.setLocationRelativeTo(null);
    container.setBackground(Color.WHITE);
    container.setLayout(new BorderLayout());
    container.add(b, BorderLayout.SOUTH);
    container.add(pan,BorderLayout.CENTER);
    this.setContentPane(container);
    this.setVisible(true);
    this.setResizable(false);
    go();
  }
 
  private void go() 
  {
    // Les coordonnées de départ de notre rond
    int x = pan.getPosX(), y = pan.getPosY();
    // Le booléen pour savoir si l'on recule ou non sur l'axe x
    boolean backX = false;
    // Le booléen pour savoir si l'on recule ou non sur l'axe y
    boolean backY = false;
 
    // Dans cet exemple, j'utilise une boucle while
    // Vous verrez qu'elle fonctionne très bien
    while (true) 
    {
      // Si la coordonnée x est inférieure à 1, on avance
      if (x < 1)
        backX = false;
      // Si la coordonnée x est supérieure à la taille du Panneau moins la taille du rond, on recule
      if (x > pan.getWidth() - 50)
        backX = true;
      // Idem pour l'axe y
      if (y < 1)
        backY = false;
      if (y > pan.getHeight() - 50)
        backY = true;
 
      // Si on avance, on incrémente la coordonnée
      // backX est un booléen, donc !backX revient à écrire
      // if (backX == false)
      if (!backX)
        pan.setPosX(++x);
      // Sinon, on décrémente
      else
        pan.setPosX(--x);
      // Idem pour l'axe Y
      if (!backY)
        pan.setPosY(++y);
      else
        pan.setPosY(--y);
 
      // On redessine notre Panneau
      pan.repaint();
      // Comme on dit : la pause s'impose ! Ici, trois millièmes de seconde
      try 
      {
        Thread.sleep(3);
      } 
 
      catch (InterruptedException e) 
      {
        e.printStackTrace();
      }
    }
  }
}
et voici ma classe bouton:

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
import java.awt.Color;
import java.awt.Dimension;
import java.awt.Graphics;
 
import javax.swing.JButton;
import javax.swing.JPanel;
 
 
public class bouton extends JButton
{
    public void paintComponent(Graphics g)
    {
        g.setColor(Color.white);
        g.fillRect(0, 0, 300, 80);
        g.setColor(Color.BLACK);
        g.drawString("go", this.getWidth()/2,this.getHeight()/2);
    }
 
}