Partage
  • Partager sur Facebook
  • Partager sur Twitter

Transfert en .jar

    9 février 2022 à 14:54:45

    Bonjour a tous,

    Je viens de créer un programme sous Netbeans, tout est fonctionnelle, j'ai réussis à le mettre en .jar également. Mais lorsque je viens d'ajouter un nouveau bouton sur mon projet avec une image à la place d'un texte, celle-ci ne s'affiche pas sur mon .jar tandis qu'elle s'affiche sur le "run" de Netbeans (j'ai aussi fait le "Clean & Build" sur Netbeans), mais toujours rien. 

    Je me trouve vers vous car je n'arrive pas à trouver la solution. 

    Si vous pouvez m'aidez ca serait hyper sympa, merci.

    -
    Edité par JestinSivarajah1 9 février 2022 à 14:54:57

    • Partager sur Facebook
    • Partager sur Twitter
      21 février 2022 à 15:52:32

      Il faudrait en savoir davantage sur la manière utilisée pour

      > ajouter un nouveau bouton sur mon projet avec une image à la place d'un texte

      genre, la manière de désigner l'image, qui devrait être une ressource située dans le jar.

      Parce que là, pour trouver ce qui ne va pas dans un code qu'on ne  voit pas, vaut mieux poser la question à une voyante que sur le forum.

      Donc, pour éviter de nous montrer 3000 lignes de code dont on ne saura pas quoi faire ce qui serait bien :

      • faire une appli minimale avec UN bouton montrant une image plutôt qu'un texte (ça devrait être vite fait)
      • nous la montrer
      ---
      Bon, j'ai fait un peu de retro-computing avec swing, mélangé avec du Java plus moderne.
      Voila un source qui affiche une bouton et deux labels, dont un qui a une image
      package javaawt;
      
      import java.awt.BorderLayout;
      import java.awt.event.WindowAdapter;
      import java.awt.event.WindowEvent;
      import java.io.IOException;
      import javax.swing.ImageIcon;
      import javax.swing.JButton;
      import javax.swing.JFrame;
      import javax.swing.JLabel;
      import javax.swing.JPanel;
      
      public class Javaawt extends JFrame {
      
          public static void main(String[] args) throws IOException {
              var mainFrame = new Javaawt("Hello World example");
              mainFrame.setSize(300, 200);
              mainFrame.setVisible(true);
          }
      
          public Javaawt(String frameTitle) throws IOException {
              super(frameTitle);
      
              var title = new JLabel("Hello World", JLabel.CENTER);
              var quitButton = new JButton("Quit");
      
              // l'image vient d'une resource récupérée par le loader de la classe
              var loader = this.getClass().getClassLoader();
              var resource = loader.getResource("javaawt/img.png");
              var icon = new ImageIcon(resource);
              var labelImage
                      = //         new JLabel("Image ici", JLabel.CENTER);
                      new JLabel(icon);
      
              var controlPanel = new JPanel();
              controlPanel.setLayout(new BorderLayout());
      
              controlPanel.add(title, BorderLayout.NORTH);
              controlPanel.add(labelImage, BorderLayout.CENTER);
              controlPanel.add(quitButton, BorderLayout.EAST);
      
              add(controlPanel);
      
              quitButton.addActionListener(a -> System.exit(0));
              addWindowListener(new WindowAdapter() {
      
                  @Override
                  public void windowClosing(WindowEvent we) {
                      System.exit(0);
                  }
              });
          }
      }
      
      Le jar contient ceci :
      $ jar tf dist/javaawt.jar 
      META-INF/
      META-INF/MANIFEST.MF
      javaawt/
      javaawt/Javaawt$1.class
      javaawt/Javaawt.class
      javaawt/img.png
      
      il a été produit à partir du répertoire des sources contenant le source et l'image
      $ tree src/
      src/
      └── javaawt
          ├── img.png
          └── Javaawt.java
      
      1 directory, 2 files
      
      et l'exécution par java -jar dist/javaawt.jar
      affiche

      -
      Edité par michelbillaud 22 février 2022 à 9:01:58

      • Partager sur Facebook
      • Partager sur Twitter
        20 avril 2022 à 11:12:13

        Oui c'est vrai qu'avec un bout de code c'était plus facile à m'orienter. 

        Merci encore de votre réponse et de votre aide. 

        J'ai pu trouver la solution. Il fallait seulement que j'insère l'image concerné dans le dossier "dist" et non dans un package "ressource". 

        -
        Edité par JestinSivarajah1 20 avril 2022 à 11:12:50

        • Partager sur Facebook
        • Partager sur Twitter

        Transfert en .jar

        × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
        • Editeur
        • Markdown