Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
973 connectés 

  FORUM HardWare.fr
  Programmation
  Java

  Comment charger une image ?

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Comment charger une image ?

n°2445075
Lt Ripley
Ils ont tout niqué
Posté le 20-04-2023 à 11:13:31  profilanswer
 

Salut !

 

Pour mettre une icone, sur ma précédente app je fais

 
Code :
  1. try{    // changer l'icone de la fenetre (fenetre et barre des taches)
  2.            URL url2 = getClass().getResource("/MediaFilesVR/settings.png" );
  3.            Image icone = Toolkit.getDefaultToolkit().getImage(url2);
  4.            setIconImage(icone);
  5.        }

et ça fonctionne

 

Mais sur mon app que je dev actuellement ça ne marche pas du tout, peu importe ou je mette mon dossier MediaFilesVR.

 

L'arborescence de mon app actuelle où ça marche pas :
https://i.imgur.com/T77YosV.png

 

Mon app ou ça marche :
https://i.imgur.com/lKmcksj.png

 

Avez vous une idée ?  L'erreur c'est "Cannot invoke "java.net.URL.toString()" because "url" is null"

 

Et impossible de "mark directory as resource" l'option n'apparait pas, j'ai uniquement "Excluded" comme choix

 

Merci d'avance c'est un véritable enfer


Message édité par Lt Ripley le 20-04-2023 à 17:33:22

---------------
Mes apps  |  Viens coder  |  Mon topal de vente
mood
Publicité
Posté le 20-04-2023 à 11:13:31  profilanswer
 

n°2445108
DDT
Few understand
Posté le 20-04-2023 à 18:08:27  profilanswer
 

Dans un projet style Maven tu mets tes ressources dans src/main/resources et src/test/resources respectivement.
L'outil de build devrait les copier à la racine du classpath et ton bout de code devrait fonctionner.


Message édité par DDT le 20-04-2023 à 20:15:16

---------------
click clack clunka thunk
n°2445111
Lt Ripley
Ils ont tout niqué
Posté le 20-04-2023 à 18:58:20  profilanswer
 

Super ça fonctionne niquel, j'ai fait ensuite un petit clic droit sur le dossier puis "mark as resource root"
 
Puis le chemin c'est /monFichier
 
(le projet est sous gradle)
 
Merci beaucoup !!!
 
Question subsidiaire : si je crée un runnable .jar ça ne fonctionne plus : url is null
 
C'est un truc de fou


---------------
Mes apps  |  Viens coder  |  Mon topal de vente
n°2445112
rat de com​bat
attention rongeur méchant!
Posté le 20-04-2023 à 19:21:46  profilanswer
 

Lt Ripley a écrit :

C'est un truc de fou

Bah c'est du Java. :o
 
Pardon, je sors. :o


---------------
Si vous ouvrez un sujet merci de ne pas le "laisser mourir" subitement et de le marquer comme "résolu" le cas échéant!
n°2445113
DDT
Few understand
Posté le 20-04-2023 à 20:14:20  profilanswer
 

Montre ton build.gradle?

 

Je connais pas bien Gradle mais je viens de tester et le plugin application copie bien les ressources dans le .jar ici.


Message édité par DDT le 20-04-2023 à 20:15:21

---------------
click clack clunka thunk
n°2445114
Lt Ripley
Ils ont tout niqué
Posté le 20-04-2023 à 20:41:10  profilanswer
 

https://i.imgur.com/9vH8S4z.png
 
J'ai essayé en ajoutant ça, sans succès :
 
sourceSets {
    main {
        resources {
            srcDirs = ["src/main/resources"]
        }
    }
}
 
jar {
    from sourceSets.main.resources
}


---------------
Mes apps  |  Viens coder  |  Mon topal de vente
n°2445116
DDT
Few understand
Posté le 20-04-2023 à 22:45:06  profilanswer
 

Même sans le plugin application ça marche pour moi.
 


.
├── build
│  └── ...
├── build.gradle.kts
├── gradle
│  └── ...
├── settings.gradle.kts
└── src
   ├── main
   │  ├── java
   │  │  └── org
   │  │     └── example
   │  │        ├── Hello.java
   │  │        └── Main.java
   │  └── resources
   │     └── hello.txt
   └── test
      ├── java
      └── resources


 
build.gradle.kts

Code :
  1. plugins {
  2.     id("java" )
  3. }
  4. group = "org.example"
  5. version = "1.0-SNAPSHOT"
  6. java {
  7.     sourceCompatibility = JavaVersion.VERSION_17
  8. }
  9. tasks.withType<Jar> {
  10.     manifest {
  11.         attributes["Main-Class"] = "org.example.Main"
  12.     }
  13. }
  14. repositories {
  15.     mavenCentral()
  16. }
  17. dependencies {
  18.     testImplementation(platform("org.junit:junit-bom:5.9.1" ))
  19.     testImplementation("org.junit.jupiter:junit-jupiter" )
  20. }
  21. tasks.test {
  22.     useJUnitPlatform()
  23. }


 


$ gradle jar
...
$ jar -tvf build/libs/gradle-java-1.0-SNAPSHOT.jar


 

Citation :


     0 Thu Apr 20 22:41:34 CEST 2023 META-INF/
    25 Thu Apr 20 22:41:34 CEST 2023 META-INF/MANIFEST.MF
     0 Thu Apr 20 22:41:34 CEST 2023 org/
     0 Thu Apr 20 22:41:34 CEST 2023 org/example/
   975 Thu Apr 20 22:41:34 CEST 2023 org/example/Hello.class
   644 Thu Apr 20 22:41:34 CEST 2023 org/example/Main.class
   13 Thu Apr 20 22:41:34 CEST 2023 hello.txt


Message édité par DDT le 21-04-2023 à 10:10:18

---------------
click clack clunka thunk
n°2445138
Lt Ripley
Ils ont tout niqué
Posté le 21-04-2023 à 12:34:31  profilanswer
 

J'y suis arrivé en ajoutant le dossier resources dans project structures / artifacts / output layout / + / directory content (j'y croyais plus nom de diou)

 

Merci DDT pour l'indication du dossier src/main/resources !

 


rat de combat a écrit :

Bah c'est du Java. :o

 

Pardon, je sors. :o

A chaque appli que je fais, pour inclure un fichier dans le jar c'est l'enfer :cry:

 


Je peux vous dire que je vais noter toute la procédure avec les détails


Message édité par Lt Ripley le 21-04-2023 à 12:38:30

---------------
Mes apps  |  Viens coder  |  Mon topal de vente
n°2445140
DDT
Few understand
Posté le 21-04-2023 à 12:39:57  profilanswer
 

Mais comment tu assembles le jar?
Car de nouveau le comportement par défaut de Gradle est correct ici, y a rien besoin de configurer.


---------------
click clack clunka thunk
n°2445142
Lt Ripley
Ils ont tout niqué
Posté le 21-04-2023 à 12:44:36  profilanswer
 

Je fais, dans intellij : build / build artifact


---------------
Mes apps  |  Viens coder  |  Mon topal de vente
mood
Publicité
Posté le 21-04-2023 à 12:44:36  profilanswer
 

n°2445146
DDT
Few understand
Posté le 21-04-2023 à 13:03:22  profilanswer
 

Tente de réimporter le projet: tu le fermes, efface le répertoire .idea our le fichier .iml, puis rouvres le projet.
Y a pas de raison qu'IntelliJ IDEA importe pas correctement la structure de dossiers par défaut.
 
Cela dit tu devrais plutôt passer la commande à Gradle directement, avoir un comportement reproductible c'est un peu le but d'un outil de build.


---------------
click clack clunka thunk
n°2445192
Lt Ripley
Ils ont tout niqué
Posté le 22-04-2023 à 09:17:45  profilanswer
 

Si j'efface .idea et .iml ça me fout le boxon et faut que je refasse mon artifact dans project structure  
 
Je reste comme ça, ça me va bien !


---------------
Mes apps  |  Viens coder  |  Mon topal de vente

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  Java

  Comment charger une image ?

 

Sujets relatifs
Rafraichir div pour charger image de fondCharger une image ou fichier dans excel via macro
Comment charger une image d'une base de donnéesCharger une image stockée dans une base de données
c++ opengl charger image textureComment permettre a un visiteur de charger une image sur mon site
charger un swf et le faire atterir à une image clef (qui a un drapeau)[CORRIGÉ] Charger une image et l'étirer
LoadDib => charger une image en 24 bits ?[c] charger une image pixel par pixel dans un tableau
Plus de sujets relatifs à : Comment charger une image ?


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR