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

AWT/Swing Java Discussion :

probleme de code JScrollPane


Sujet :

AWT/Swing Java

  1. #1
    Membre averti
    Inscrit en
    Avril 2007
    Messages
    47
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 47
    Par défaut probleme de code JScrollPane
    j'ai une image de taille plus grande que la JFrame j'ai utiliser un JScrollPane
    mais ca marche pas qlq peut me corriger mon code et merci
    la classe Zone pour affichier une image
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    import java.awt.*;
    import java.awt.image.*;
    import java.io.*;
    import javax.imageio.*;
    import javax.swing.*;
    class Zone extends JPanel  {
       private BufferedImage image;
       public Zone() throws IOException {
       image = ImageIO.read(new File("text.gif"));
        }
       protected void paintComponent(Graphics surface) {
          surface.drawImage(image, 0, 0, null);   
       }
    la classe JFrame pour affichier la fenêtre
    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
    import java.awt.*;
    import java.awt.image.*;
    import java.io.*;
    import javax.imageio.*;
    import javax.swing.*;
     
    public class Fenêtre extends JFrame {
       public Fenêtre()  {
          this.setDefaultCloseOperation(this.EXIT_ON_CLOSE);
          this.setSize(400, 400);
          this.setTitle("Voir image");
               try{
          	Zone z = new Zone();
          JScrollPane scrollPane = new JScrollPane(z); 
             this.getContentPane().add(scrollPane);
            }
          catch(IOException e){System.out.print(e);
          }
       }
     
       public static void main(String[] args) {
          new Fenêtre().setVisible(true);
       }
    }
    merci de me repondre je suis bloque
    et merci

  2. #2
    Membre éprouvé
    Avatar de Janitrix
    Inscrit en
    Octobre 2005
    Messages
    3 391
    Détails du profil
    Informations forums :
    Inscription : Octobre 2005
    Messages : 3 391
    Par défaut
    Premièrement, le titre de ta discussion n'est pas du tout clair !

    Si tu veux qu'on t'aide, tu dois nous dire quel est ton problème. Tu nous dis que ça marche pas, super, et alors ? Qu'est ce qui ne marche pas ? Qu'est ce qui se passe concrètement ?

    Pour avoir des réponses, il faut faire des efforts et t'exprimer correctement, et surtout, tu dois faire des recherches personnelles, nous n'allons pas faire le boulot à ta place, on peut te guider et t'aider si tu peines, rien de plus.

    Alors donnes nous plus de détails sur ton problème, merci

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    195
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 195
    Par défaut
    et ajoute dans ton titre le sujet exacte de ton probleme pour les autres visiteur qui voudrait etres aider sur le meme probleme

  4. #4
    Membre confirmé
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    195
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 195
    Par défaut
    ton code doit afficherr un fenetre ou ya rien dedans n'est-ce pas?

    c'est normal si tu rajoute pas l'image :o

  5. #5
    Rédacteur
    Avatar de eclesia
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    2 110
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 2 110
    Par défaut
    c'est normal si tu rajoute pas l'image :o
    elle est ajoutée l'image.



    ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    surface.drawImage(image, 0, 0, this);
    et cela :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    this.setContentPane(scrollPane);
    ce n'est pas le top mais ca doit marcher

  6. #6
    Membre confirmé
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    195
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 195
    Par défaut
    oui j'ai vu que apres :s mais chez moi sa marche pas lol

    doit y avoir un probeme au niveau du try je pense

  7. #7
    Membre averti
    Inscrit en
    Avril 2007
    Messages
    47
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 47
    Par défaut
    alors pour le pb de mon code
    l'image s'affiche c'est bien mais le pb est :
    Seul la partie supérieur de l’image apparaisse bien sûr car la taille de la fenêtre et plus petite que la taille de l’image
    Donc j’ai utilisé un JScroolPane pour résoudre le problème
    mais ça marche pas je ne vois pas de JScrollpane
    pour l'ami Janitrix
    nous n'allons pas faire le boulot à ta place
    oui bien sûr j'ai pas demande ca j' ai seulement
    volu savoir vos options sur mon code et s'il ya qlq chose a corriger pour faire marche le JScrollPane c'est tous
    en plus j'ai fait de la recherche et j'ai applique ce que j'ai compris

  8. #8
    Rédacteur
    Avatar de eclesia
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    2 110
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 2 110
    Par défaut
    tu as deux solutions :

    - donner une taille identique à l'image et à ton composant Zone (utiliser la methode setPreferredSize)

    - ou redimensionner l'image, soit tu le fais en code avec java2D ou avec un JXImagePanel de la libraire swingx.

  9. #9
    Membre confirmé
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    195
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 195
    Par défaut
    je croyai que la methode pack s'occuper de redimensionner tout a la taille de la fenetre non?

  10. #10
    Rédacteur
    Avatar de eclesia
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    2 110
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 2 110
    Par défaut
    je croyai que la methode pack s'occuper de redimensionner tout a la taille de la fenetre non?
    pour le cas ou les composants on une dimension définie oui.

    seulement dans son code l'image est dessiné en partant des coordonnées 0,0 il n'est nulle part fait mention que le composant Zone doit faire la taille de l'image. dailleur ce composant zone est situé dans un JScrollPane, si tu fais un pack, la fenetre prendra la taille du JScrollPane et non la taille de son contenu.

  11. #11
    Membre averti
    Inscrit en
    Avril 2007
    Messages
    47
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 47
    Par défaut
    merci eclesia
    le problem et que l'image est tres grande et je je la met a la taille de JFrame ou je la redimensionne son contenu ne serai pas lisible
    donc je doit utiliser JScrollPane pour visialier toute l'image
    j'arrive pas a comprendre pourquoi ça marche pas puisque il y a pas des erreurs dans le code ???????!!!!!!!!!!!!!!!!!!
    tu sait ca fait 4 heure que je traivaille sur ce petit pb et j' arrive pas a mon sortir

  12. #12
    Rédacteur
    Avatar de eclesia
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    2 110
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 2 110
    Par défaut
    en quelques lignes :

    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
     
    public class Fenetre extends JFrame{
     
        public Fenetre() {
            setSize(800,600);
            setDefaultCloseOperation(EXIT_ON_CLOSE);
     
            final ImageIcon img = new ImageIcon("gros.jpg");
     
            JPanel p = new JPanel(){
                public void paintComponent(Graphics g){
                    g.drawImage(img.getImage(), 0, 0, this);
                }
            };
            p.setPreferredSize(new Dimension(img.getIconWidth(),img.getIconHeight()));
     
            JScrollPane scr = new JScrollPane(p);
     
            getContentPane().add(scr);
            setVisible(true);
     
        }
     
    }
    je te laisse l'adapter a tes besoins

Discussions similaires

  1. probleme de code
    Par fixouille90 dans le forum Access
    Réponses: 11
    Dernier message: 09/12/2005, 15h23
  2. probleme de code simple
    Par BFH dans le forum C
    Réponses: 18
    Dernier message: 28/10/2005, 18h57
  3. [VB.Net] Probleme popup code behind
    Par balibo dans le forum ASP.NET
    Réponses: 19
    Dernier message: 17/10/2005, 12h22
  4. probleme de code formulaire
    Par bachilbouzouk dans le forum ASP
    Réponses: 45
    Dernier message: 13/04/2005, 10h01
  5. [debutant] probleme de code :-(
    Par flogreg dans le forum Servlets/JSP
    Réponses: 14
    Dernier message: 16/08/2004, 18h20

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