1 pièce(s) jointe(s)
Afficher une image dans un JPanel
Bonsoir,
Voici mon problème,
j'essaye de créer un damier sur lequel j'essaye d'accrocher des image et impossible d'y arriver.
Voici le code de mes classes.
Code:
1 2 3 4 5 6 7
|
public class TestFenetre {
public static void main(String[] args) {
Fenetre f = new Fenetre("Mon super damier");
f.sizeAndPlace();
}
} |
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
|
package TD6;
import javax.swing.*;
import java.awt.*;
public class Fenetre extends JFrame {
private String titre;
private Damier d0;
public Fenetre (String titre) {
super(titre);
this.setSize(300,300);
this.setResizable(false);
setLayout(new BorderLayout());
// Création du damier
d0 = new Damier(10,10);
this.add(d0,BorderLayout.CENTER);
// Permet d'arrêter l'appli lors de la fermeture de la fenêtre
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
public void sizeAndPlace() {
Dimension dim = Toolkit.getDefaultToolkit().getScreenSize();
// Récupération de la largeur et hauteur de l'écran
int lae = (int)dim.getWidth();
int hae = (int)dim.getHeight();
// Retaillage de la largeur et de la hauteur de la fenêtre
int laf = (int)(lae*3/4);
int haf = (int)(hae*3/4);
// Variable d'émargement de la fenêtre
int Xf = (int)(lae*10/100);
int Yf = (int)(hae*10/100);
// Affichage de la fenêtre avec les nouvelles dimension
setBounds(Xf, Yf, laf, haf);
this.setVisible(true);
}
} |
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
|
package TD6;
import java.awt.*;
import javax.swing.*;
public class Damier extends JPanel{
Case [][] t;
public Damier (int nbrcaselar, int nbrcasehau) {
// Création du style de damier
setLayout(new GridLayout(nbrcaselar, nbrcasehau));
// Réservation de l'espace en mémoire
t = new Case[nbrcaselar][nbrcasehau];
for (int i=0 ; i<nbrcaselar ; i++) {
for (int j=0 ; j<nbrcasehau ; j++) {
t[i][j] = new Mur(i,j);
// Permet l'affichage dans la fenêtre
this.add(t[i][j]);
}
}
}
} |
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
|
package TD6;
import javax.swing.*;
import java.awt.*;
public abstract class Case extends JPanel {
protected static Toolkit toolkit = Toolkit.getDefaultToolkit() ;
public Case () {
}
public abstract void paintComponent(Graphics g);
} |
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22
|
package TD6;
import java.awt.*;
public class Mur extends Case {
Image mur = toolkit.getImage("mur.gif");
public Mur(int x, int y)
{
super();
}
public void paintComponent(Graphics g) {
int l,h;
l = mur.getWidth();
h = mur.getHeight();
System.out.println(mur+" "+l+" "+h);
g.drawImage(mur, 0, 0, l, h, this);
}
} |
J'ai joint le code également en pièce jointe
Merci