Partage
  • Partager sur Facebook
  • Partager sur Twitter

{JAVA} problème avec JScrollPane

affichage image sur JScrollPane

    7 avril 2007 à 0:24:39

    bonsoir merci mes amis je voulais bien developper cette idée et d'afficher l'image sur JScrollpane
    voila le code mais l'image n'affiche pas sur le composant JScrollPane


    package aa;
    import javax.swing.*;
    import java.awt.*;
    import java.sql.*;
     
     
    class SimpleFenetre extends JFrame{
    private JPanel pan;
      private JLabel b = new JLabel("je suis la ");
      private JButton a = new JButton ("entrer");
      private JScrollPane  jS=new JScrollPane ();
     
       private JPanel pan2 ;
    public SimpleFenetre (){
         super ("une fenetre avec uen image");
       setSize(300,200);
       this.setVisible(true);
     
         Connection conn = null;
           String url = "jdbc:mysql://localhost/test";
           String userName = "root";
           String password = "19821405";
           try {
       Class.forName("org.gjt.mm.mysql.Driver");
       conn = DriverManager.getConnection(url, userName, password);
       Statement instruction = conn.createStatement();
       String sql="SELECT img FROM image WHERE name = 'ulysse'";
       ResultSet resultat = instruction.executeQuery(sql);
       while (resultat.next()){
         JLabel photo = new JLabel();
       String img = resultat.getString("img");
       photo.setIcon( new ImageIcon( img ));
     
      jS.add(photo);
     
          }
         
          }
         
            catch (ClassNotFoundException ex) {
            JOptionPane.showMessageDialog(null,
             "Classe introuvable" + ex.getMessage());
             }
              catch (SQLException ex) {
               JOptionPane.showMessageDialog(null,
               "erreur JDBC : " + ex.getMessage());
              }
     
      pan=new Panneau();
      pan.setLayout(null);
     
        jS.setBounds(520 ,250 ,200,64 );
      pan.add(jS);
       getContentPane().add(pan);
     
      pan.add(b);
       b.setBounds(50 ,50 ,500,24 );
    pan.add(a);
       a.setBounds(800 ,600 ,100,30 );
    getContentPane().add(pan);
     
     }
     
      public static void main(String[] args) {
     
        SimpleFenetre gui = new SimpleFenetre();
    }
     
    }
     
     
    class Panneau extends JPanel {
     
    private ImageIcon rouge ;
    public Panneau(){
    rouge =new ImageIcon("C:\\Documents and Settings\\BE\\Bureau\\a.JPG");
    }
    public void paintComponent(Graphics g){
    super.paintComponent(g);
    Image imRouge=rouge.getImage();
    g.drawImage(imRouge,-405,-335,this);
    }
     
    }

    cette partie ne marche pas jS.add(photo);
    je viens de lire http://java.sun.com/docs/books/tutor...html#operation

    mais je n'ai pas bien compris

    merci de bien vouloir m'aider

    €dit kokotchY : J'ai modifié la fin de ton code, comme ca ton text est affiché correctement ;)
    • Partager sur Facebook
    • Partager sur Twitter
      7 avril 2007 à 8:27:45

      Tout d'abord, je te conseille d'indenter ton code !
      Avec eclipse, ca va tres vite ;)


      package ulysse031;

      import java.sql.Connection;
      import java.sql.DriverManager;
      import java.sql.ResultSet;
      import java.sql.SQLException;
      import java.sql.Statement;

      import javax.swing.ImageIcon;
      import javax.swing.JButton;
      import javax.swing.JFrame;
      import javax.swing.JLabel;
      import javax.swing.JOptionPane;
      import javax.swing.JPanel;
      import javax.swing.JScrollPane;

      public class SimpleFenetre extends JFrame {
                      private JPanel pan;
                      private JLabel b = new JLabel("je suis la ");
                      private JButton a = new JButton ("entrer");
                      private JScrollPane  jS=new JScrollPane ();

                      private JPanel pan2 ;
                      public SimpleFenetre (){
                              super ("une fenetre avec uen image");
                              setSize(300,200);
                              this.setVisible(true);

                              Connection conn = null;
                              String url = "jdbc:mysql://localhost/test";
                              String userName = "root";
                              String password = "19821405";
                              try {
                                      Class.forName("org.gjt.mm.mysql.Driver");
                                      conn = DriverManager.getConnection(url, userName, password);
                                      Statement instruction = conn.createStatement();
                                      String sql="SELECT img FROM image WHERE name = 'ulysse'";
                                      ResultSet resultat = instruction.executeQuery(sql);
                                      while (resultat.next()){
                                              JLabel photo = new JLabel();
                                              String img = resultat.getString("img");
                                              photo.setIcon( new ImageIcon( img ));

                                              jS.add(photo);

                                      }

                              }

                              catch (ClassNotFoundException ex) {
                                      JOptionPane.showMessageDialog(null,
                                                      "Classe introuvable" + ex.getMessage());
                              }
                              catch (SQLException ex) {
                                      JOptionPane.showMessageDialog(null,
                                                      "erreur JDBC : " + ex.getMessage());
                              }

                              pan=new Panneau();
                              pan.setLayout(null);

                              jS.setBounds(520 ,250 ,200,64 );
                              pan.add(jS);
                              getContentPane().add(pan);

                              pan.add(b);
                              b.setBounds(50 ,50 ,500,24 );
                              pan.add(a);
                              a.setBounds(800 ,600 ,100,30 );
                              getContentPane().add(pan);

                      }

                      public static void main(String[] args) {

                              SimpleFenetre gui = new SimpleFenetre();
                      }
      }



      package ulysse031;

      import java.awt.Graphics;
      import java.awt.Image;

      import javax.swing.ImageIcon;
      import javax.swing.JPanel;

      public class Panneau extends JPanel {
              private ImageIcon rouge ;
              public Panneau(){
                      rouge =new ImageIcon("C:\\Documents and Settings\\BE\\Bureau\\a.JPG");
              }
              public void paintComponent(Graphics g){
                      super.paintComponent(g);
                      Image imRouge=rouge.getImage();
                      g.drawImage(imRouge,-405,-335,this);
              }
      }


      Maintenant, pourquoi tu dis que jS.add(photo); ne marche pas ?
      Tu as une erreur ? La photo ne s'affiche pas ?
      • Partager sur Facebook
      • Partager sur Twitter
        7 avril 2007 à 18:30:00

        le problème que l'image (img) ne s'affiche pas sur JScrollPane (Js)
        • Partager sur Facebook
        • Partager sur Twitter
          8 avril 2007 à 20:28:15

          voila j'ai encore modifié le code pour afficher une image sur Js
          voila le code


          package aa;
          import javax.swing.*;
          import java.awt.*;
          import java.sql.*;


          class SimpleFenetre extends JFrame{
          private JPanel pan;
            private JLabel b = new JLabel("je suis la ");
            private JButton a = new JButton ("entrer");
            private JScrollPane  jS=new JScrollPane ();


          public SimpleFenetre (){
                          this.setResizable(false);
                          this.setSize(720, 520);
                          this.setLocationRelativeTo(null);
                          this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

          Connection conn = null;
                 String url = "jdbc:mysql://localhost/test";
                 String userName = "root";
                 String password = "dddd5";
                 try {
             Class.forName("org.gjt.mm.mysql.Driver");
             conn = DriverManager.getConnection(url, userName, password);
             Statement instruction = conn.createStatement();
             String sql="SELECT img FROM image WHERE name = 'ulysse'";
             ResultSet resultat = instruction.executeQuery(sql);
             while (resultat.next()){
               
             
               ImageIcon ii =new ImageIcon(resultat.getString("img"));
               Image ima;
               ima =ii.getImage().getScaledInstance(90,90,Image.SCALE_AREA_AVERAGING);
               JLabel l = new JLabel(new ImageIcon(ima));
             
             pan=new Panneau();
             pan.setLayout(null);
             jS.setBounds(450 ,100 ,90,90 );
             Panneau p = new Panneau();
             pan.add(new JScrollPane(l));
             pan.add(jS);
             getContentPane().add(pan);
           
              pan.add(b);
              b.setBounds(170 ,100 ,80,24 );
              pan.add(a);
              a.setBackground(Color.red);
              a.setBounds(220 ,100 ,100,30 );
              getContentPane().add(pan);
           }
          }
                  catch (ClassNotFoundException ex) {
                  JOptionPane.showMessageDialog(null,
                   "Classe introuvable" + ex.getMessage());
                   }
                    catch (SQLException ex) {
                     JOptionPane.showMessageDialog(null,
                     "erreur JDBC : " + ex.getMessage());
                    }

           

          }
           public static void main(String[] args) {

              SimpleFenetre gui = new SimpleFenetre();
              gui.setVisible(true);
          }

          }


          class Panneau extends JPanel {

          private ImageIcon rouge ;
          public Panneau(){
          rouge =new ImageIcon("C:\\Documents and Settings\\BE\\Bureau\\a.JPG");
          }
          public void paintComponent(Graphics g){
          super.paintComponent(g);
          Image imRouge=rouge.getImage();
          g.drawImage(imRouge,0,0,this);
          }

          }

          mais le malheur l'image n'affiche pas sur le composant

          j'ai l'impression que cette partie monque quelque chose



          ImageIcon ii =new ImageIcon(resultat.getString("img"));
               Image ima;
               ima =ii.getImage().getScaledInstance(90,90,Image.SCALE_AREA_AVERAGING);
               JLabel l = new JLabel(new ImageIcon(ima));




          j'espere que vous m'avez compris
          • Partager sur Facebook
          • Partager sur Twitter

          {JAVA} problème avec JScrollPane

          × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
          × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
          • Editeur
          • Markdown