[Java] Superposer Image par dessus un Label

Résolu
mickesp -  
Dee_carpenter Messages postés 1 Statut Membre -
Bonjour à tous,
je suis à la programmation d'un jeu de serpents et échelles en JAVA. Ma question est simple: Comment est ce que je fait pour superposer des images par dessus des Labels?

J'ai mon fond qui est créé par une boucle For qui m'affiche mes 100 Label. Cela me cré ma planche de jeu.
Et par dessus cette plache de jeu, je veux mettre mes serpent et mes échelles, qui sont des images .gif.
Donc, comment je m'y prend? Avec JLayeredPane , si oui de quelle manière?

Merci d'avance
A voir également:

4 réponses

Utilisateur anonyme
 
import java.awt.Color;
import java.awt.Container;
import java.awt.Dimension;
import java.awt.Toolkit;

import javax.swing.ImageIcon;
import javax.swing.JFrame;
import javax.swing.JLabel;

/*
 * Created on Nov 23, 2005
 *
 */

/**
 * @author HackTrack
 *
 */
public class ImageOverLabel extends JFrame {

	public ImageOverLabel() {
		super("Démo d'image sur Label");
		initialize();
	}

	private void initialize() {
		Container c = getContentPane();
		JLabel label = new JLabel();
		label.setBackground(Color.BLUE);
		ImageIcon image = new ImageIcon(Toolkit.getDefaultToolkit().getImage("c:/test.jpg"));
		label.setPreferredSize(new Dimension(image.getIconWidth(), image.getIconHeight()));
		label.setIcon(image);
		c.add(label);
	}

	public static void main(String[] args) {
		ImageOverLabel demo = new ImageOverLabel();
		demo.pack();
		demo.setVisible(true);
	}
}


;-)
HackTrack
5
mickesp
 
Hey merci beaucoup Hacktrack,
toi tu connais ça.
Vive les forums et le monde intelligent.
0
Dee_carpenter Messages postés 1 Statut Membre
 
salut,
j'ai lu ton code pour la solution que tu preposes pour inserer une image dans un JLabel avec l'instruction :
JLabel.setPreferredSize(new Dimension(ImageIcon.getIconWidth(),ImageIcon.getIconHeight()));
...est-ce que tu as une idée sur ce qu'il faut faire pour avoir l'inverse. c'est à dire redimensionner l'image pour qu'elle rentre dans les dimensions fixes du JLabel.
Merci.
0
smile
 
Bonjour :

S'il vous plait je suis entrin de préparer une application pour mon stage,mon problème : je veux superposer des composants sur une image (définie comme fond d'un JPanel).En d'autres termes j'ai crée une JFrame dans laquelle j'ai crée un JPanel ayant comme fond une image,sur ce meme JPanel je veux ajouter des boutons et des labels.

C'est bon pour l'image,ça marche,mais les composants n'apparaissent qu'en survolant la fenetre avec souris et disparaissent en surdimensionnant la fenetre ?!?!?!?!?

S'il vous plait aidez moi ...........

Merci d'avance ;) .
1
jcodeunpeu Messages postés 365 Statut Membre 6
 
bonjour,
j'ai vu quelquechose qui y ressemble par ailleurs :
http://www.javafr.com/forum.v2.aspx?ID=605046
peut-être que tu peux transposer ?
A++
0
chahra
 
Bonjour
je veux lire à partir d`un fichier son contenu qui est sous forme d`un entier par ligne jusqu`à 81,et puis afficher ce contenu dans une interface sous forme de tableau de JLabel de deux dimensions.mon code m`affiche une interface vide que je ne sais pas pourquoi. j`ai vraiment besoin d`une réponse.merci d`avance

public class Interface extends JFrame {
//public Grid gridd ;
static JLabel cell[][]=new JLabel [9][9];
int i;
int j;
int k=0;
RandomAccessFile rd;


public Interface() throws Exception
{
setSize(150,300);
setTitle("SUDOKU");

setLocation(250,500);
setBackground (Color.yellow);
getContentPane().setLayout(new FlowLayout());
String val[] = getValues();


if(val.length!=81)

{
System.exit(0);
}


for(int h=0;h<81;h++)

{
if(Integer.parseInt(val[h])<0);
{
System.exit(0);
}

}

for (int i=0; i<9; i++)
{

// read() lit le prochain caractère du flux (retourne un int car c'est sur 16 bits).
//Utilise read(char cbuf[], int off, int len).
for(int j=0;j<9;j++)

{ //les cellules donnees
//cells[i][j]=ch-(int)'0';
// cell[i][j]=new JLabel("+ch-(int)'0'");

if(val[k]!="0")
{
cell[i][j].setText(val[k]);
}
else
{cell[i][j].setText("");}
k++;
add(cell[i][j]);
}
}

setDefaultCloseOperation(EXIT_ON_CLOSE);
setVisible(true);

}









String[] getValues() throws Exception
{
rd = new RandomAccessFile("C:\\testGrid.txt", "r");
String vals[]=new String [81];
// BufferedReader entree = new BufferedReader (new FileReader ("C:\\testGrid.txt") );
//on se positionne à la dernière ligne
rd.seek(0);
for(int o=0;o<81;o++)
{
vals[o] = rd.readLine();
}
rd.close();
return vals;
}




}
0