IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Composants Java Discussion :

insérer image dans jtextfield


Sujet :

Composants Java

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Février 2008
    Messages
    114
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 114
    Points : 83
    Points
    83
    Par défaut insérer image dans jtextfield
    Bonjour,

    Est-il possible et surtout comment insérer une image dans un JTextField?

    J'ai créé un jeu d'échecs (avec mon prof) le plateau hérite de JFrame.Il contient 64 JTextfield comme cases(ou plutot 64 "Case" avec un attribut JTextField jt dans la classe Case).Pour l'instant les pièces sont représentées par 2 caractères que j'écris sur la case,mais j'aimerai bien remplacer cela par des pièces d'échecs sous forme d'image.D'où ma question..

  2. #2
    Membre éclairé
    Homme Profil pro
    NoOb
    Inscrit en
    Mai 2007
    Messages
    554
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : NoOb

    Informations forums :
    Inscription : Mai 2007
    Messages : 554
    Points : 852
    Points
    852
    Par défaut
    Salut,

    Je pense que tu devrais les remplacer par des JLabel, ou un conteneur quelconque pour image, Pourquoi des JTextField?

  3. #3
    Membre régulier
    Profil pro
    Inscrit en
    Février 2008
    Messages
    114
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 114
    Points : 83
    Points
    83
    Par défaut
    Oui tu as raison.Peut etre qu'on a utilisé ça car on ne voulait pas insister sur l'aspect graphique..ou bien que l'on avait déjà fait des programmes en cours avec des JTextField..
    Maintenant que tu le dis je prends conscience que certaines manipulations sont plus difficiles à réaliser selon les objets que l'on utilise..
    Je vais essayer ce que tu me dis meme si ça va faire plusieurs modifs dans mon code, je crois que je n'ai pas trop le choix.Merci.

  4. #4
    Expert éminent sénior
    Avatar de sinok
    Profil pro
    Inscrit en
    Août 2004
    Messages
    8 765
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Août 2004
    Messages : 8 765
    Points : 12 977
    Points
    12 977
    Par défaut
    Bah tu te crées un composant héritant de JComponent et implémentant toute la logique de dessin d'un jeu d'échec, il n'y a que ça pour faire propre.

    Un exemple codé en 10 minutes:

    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
     
     
    package swing.tests;
     
    import java.awt.Color;
    import java.awt.Graphics;
    import java.awt.image.BufferedImage;
    import java.io.IOException;
     
    import javax.imageio.ImageIO;
    import javax.swing.JComponent;
    import javax.swing.JFrame;
     
    public class Checker extends JComponent {
     
    	private Color darkColor = new Color(127,43,15);
    	private Color lightColor = new Color(220,157,90);
    	private int cellLineNumber = 8;
    	private int cellColNumber = 8;
    	private BufferedImage pawn;
     
    	public Checker() {
    		try {
    			pawn = ImageIO.read(this.getClass().getResource("/pawn.png"));
    		} catch (IOException e) {
    			// TODO Bloc catch auto-généré
    			e.printStackTrace();
    		}
    	}
     
    	@Override
    	protected void paintComponent(Graphics g) {
    		int width = getWidth();
    		int heigth = getHeight();
    		int cellWidth = width/cellColNumber;
    		int cellHeight = heigth/cellLineNumber;
     
    		for(int i = 0; i<cellLineNumber; i++) {
    			for(int j = 0; j<cellColNumber; j++) {
    				if((i+j)%2==0) {
    					g.setColor(lightColor);
    				} else {
    					g.setColor(darkColor);
    				}
     
    				g.fillRect(j * cellWidth, i* cellHeight, cellWidth, cellHeight);
    				if(i <2 || i > cellLineNumber -3) {
    					drawPiece(g, i, j, pawn);
    				}
    			}
    		}		
    	}
     
    	private void drawPiece(Graphics g, int line, int col, BufferedImage im) {
    		int width = getWidth();
    		int heigth = getHeight();
    		int cellWidth = width/cellColNumber;
    		int cellHeight = heigth/cellLineNumber;
    		int imageWidth = im.getWidth();
    		int imageHeight = im.getHeight();
    		int pieceX = col * cellWidth + cellWidth/2 - imageWidth/2;
    		int pieceY = line * cellHeight + cellHeight/2 - imageHeight/2;		
    		g.drawImage(im,pieceX,pieceY,null);
    	}
     
    	/**
             * @param args
             */
    	public static void main(String[] args) {
    		Checker c = new Checker();
    		JFrame f = new JFrame();
    		f.add(c);
    		f.setSize(400,400);
    		f.setLocationRelativeTo(null);
    		f.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
    		f.setVisible(true);
     
     
    	}
     
    }

  5. #5
    Membre régulier
    Profil pro
    Inscrit en
    Février 2008
    Messages
    114
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 114
    Points : 83
    Points
    83
    Par défaut
    merci beaucoup.
    J'avais fais un truc moins compliqué mais je vais étudier ton code

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Insérer image dans div
    Par sandytarit dans le forum Mise en page CSS
    Réponses: 9
    Dernier message: 30/05/2007, 10h39
  2. insérer image dans base de données
    Par eriz dans le forum Servlets/JSP
    Réponses: 2
    Dernier message: 16/04/2007, 12h03
  3. HELP ! insérer Image dans le main ?
    Par lex13 dans le forum AWT/Swing
    Réponses: 11
    Dernier message: 04/04/2007, 14h12
  4. insérer images dans nbm
    Par jessie dans le forum NetBeans
    Réponses: 1
    Dernier message: 17/01/2007, 23h32
  5. [MySQL] insérer image dans bdd grace a un formulaire
    Par pod1978 dans le forum PHP & Base de données
    Réponses: 10
    Dernier message: 14/03/2006, 08h34

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo