[JLabel] Afficher des images
slt,
voila g un pb, j'essaye de faire un editeur de carte seulement voila je suis bloqué, j'arrive bien a afficher les images mais seulement la derniere s'affiche, ce qu'il y avait avant part ! Or je voudrais garder justement, voici le code :
Carte.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
|
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
public class Carte extends JLabel
{
public Carte (Menu Menu_recu)
{
Menu_courant = Menu_recu;
this.addMouseListener(
new MouseAdapter()
{
public void mousePressed (MouseEvent Clic)
{
if (SwingUtilities.isLeftMouseButton(Clic))
{
X_recue = Clic.getX();
X_recue = (((int)(X_recue / 16)) * 16);
Y_recue = Clic.getY();
Y_recue = (((int)(Y_recue / 16)) * 16);
Image_recue = Menu_courant.Renvoie_image();
repaint();
}
}
});
}
public void paintComponent (Graphics g)
{
super.paintComponent(g);
g.drawImage(Image_recue, X_recue, Y_recue, null);
}
private Menu Menu_courant;
private Image Image_recue;
private int X_recue;
private int Y_recue;
} |
Menu.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 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85
|
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
public class Menu extends JLabel
{
public Menu ()
{
Kit = Toolkit.getDefaultToolkit();
Nom_image = "Defaut.gif";
Image_courante = Kit.getImage(getClass().getResource(Nom_image));
Ajoute_image("bleu.gif", 0, 0);
Ajoute_image("vert.gif", 16, 0);
Ajoute_image("jaune.gif", 32, 0);
Ajoute_image("rouge.gif", 48, 0);
this.addMouseListener(
new MouseAdapter()
{
public void mouseClicked (MouseEvent Clic)
{
if (SwingUtilities.isLeftMouseButton(Clic))
{
X = Clic.getX();
X = (((int)(X / 16)) * 16);
Y = Clic.getY();
Y = (((int)(Y / 16)) * 16);
Determine_image();
}
}
});
}
public void Determine_image ()
{
switch (Y)
{
case 0:
switch (X)
{
case 0:
Nom_image = "bleu.gif";
break;
case 16:
Nom_image = "vert.gif";
break;
case 32:
Nom_image = "jaune.gif";
break;
case 48:
Nom_image = "rouge.gif";
break;
}
break;
}
Image_courante = Kit.getImage(getClass().getResource(Nom_image));
}
public Image Renvoie_image()
{return Image_courante;}
public void Ajoute_image (String Nom_image_recue_menu, int X_recue_menu, int Y_recue_menu)
{
Image_menu = Kit.getImage(getClass().getResource(Nom_image_recue_menu));
X_menu = X_recue_menu;
Y_menu = Y_recue_menu;
repaint();
}
public void paintComponent (Graphics g)
{
super.paintComponent(g);
g.drawImage(Image_menu, X_menu, Y_menu, null);
}
private int X;
private int Y;
private int X_menu;
private int Y_menu;
private Image Image_courante;
private Image Image_menu;
private Toolkit Kit;
private String Nom_image;
} |
Fenetre.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
|
import javax.swing.*;
import java.awt.*;
public class Fenetre extends JFrame
{
public Fenetre()
{
setDefaultCloseOperation(WindowConstants.DISPOSE_ON_CLOSE);
setTitle("[ Editeur de carte ] : Fichier vierge");
setSize(705, 480);
setResizable(false);
Menu Menu_affichee = new Menu();
Carte Carte_affichee = new Carte(Menu_affichee);
JSplitPane Separateur = new JSplitPane(JSplitPane.HORIZONTAL_SPLIT);
Separateur.setDividerSize(1);
Separateur.setDividerLocation(64);
Separateur.setLeftComponent(Menu_affichee);
Separateur.setRightComponent(Carte_affichee);
Container Contenu_fenetre = getContentPane();
Contenu_fenetre.add(Separateur);
setVisible(true);
}
} |
merci d'avance pour toutes vos réponses