[débutant] taille jPanel et image sur jbutton
Bonjour,
J'essaye de créer un démineur et je recontre quelques problemes pour l'affichage..
J'aimerais que la taille de ma fenetre se calcule en fonction du nombre de cases qu'il y aura en largeur et en hauteur. Cases de dimension (20,20).
Donc j'ais
fhaut= 20(pour taille de mes cases)*nbre de cases en hauteur.
flong= 20(pour taille de mes cases)*nbre de cases en largeur.
Et je dimensionne mes jpanel en fonction de ces 2 variables, ce qui me semble fonctionne correctement.
Mais lorsque j'affiche, la taille de mes boutons n'est pas de 20/20, mais est bien trop large et moin haute.. Ce qui fait que je n'ai pas un beau petit quadrillage de cases les unes a coté des autres comme j'aimerais dans mon jPanelCentre.
J'essaye en meme temps que mes boutons prennent la forme d'une image de "bonne" dimension (20/20), mais j'obtiens des jbutton "classique".
Je suppose donc que mon probleme vient uniquement donc de la taille des mes boutons, qui ne veulent pas prendre la taille que je souhaite..
demineur.java
Code:
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
|
private JPanel jPanelNord;
private JPanel jPanelSud;
private JLabel jLabelTitre;
private JPanel jPanelCentre;
public static void main(String[] args) {
initiali inst = new initiali();
inst.setVisible(true);
}
public demineur(int[][] surf,int x, int y) {
int[][]tab=surf;
int larg=x;
int hauteur=y;
int nbrecases= larg*hauteur;
int flarg=larg*20;
int fhaut=hauteur*20;
Case[][] cases = new Case[hauteur][larg];
setVisible(true);
try {
setDefaultCloseOperation(WindowConstants.DISPOSE_ON_CLOSE);
this.setMinimumSize(new java.awt.Dimension(flong+40,flarg));
{
jPanelNord = new JPanel();
getContentPane().add(jPanelNord, BorderLayout.NORTH);
jPanelNord.setPreferredSize(new java.awt.Dimension(fhaut+20, 20));
{
jLabelTitre = new JLabel();
jPanelNord.add(jLabelTitre);
jLabelTitre.setText("Démineur");
jLabelTitre.setPreferredSize(new java.awt.Dimension(62, 15));
}
}
{
jPanelSud = new JPanel();
getContentPane().add(jPanelSud, BorderLayout.SOUTH);
jPanelSud.setPreferredSize(new java.awt.Dimension(fhaut+20, 20));
}
{
jPanelCentre = new JPanel();
for (int i = 0; i < hauteur; i++) {
for (int j = 0; j < larg; j++) {
Case bouton = new Case(i, j);
cases[i][j] = bouton;
jPanelCentre.add(bouton);
}
}
getContentPane().add(jPanelCentre, BorderLayout.CENTER);
jPanelCentre.setPreferredSize(new java.awt.Dimension(fhaut,flarg));
}
pack();
setSize(fhaut,flarg);
} catch (Exception e) {
e.printStackTrace();
}
} |
case.java
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13
|
public class Case extends JButton {
public Case(int i,int j) {
int posx=i;
int posy=j;
//setBackground(Color.white);
setSize(20,20);
setIcon(new ImageIcon("/src/nonvisite.jpg"));
}
} |
Si quelqu'un pouvait éclairer ma lanterne :D
Merci d'avance.