Comment puis-je ajouter une icône comme une ressource classpath à une fenêtre SWT créée avec WindowBuilder?

StackOverflow https://stackoverflow.com/questions/4521973

Question

Je suis en train d'ajouter une icône externe à partir d'un fichier * .ico à une fenêtre que je crée en utilisant la fenêtre de conception WindowBuilder. Je peux choisir la coquille, qui affiche une propriétés « image » champ. text alt Cela nous amène à la boîte de dialogue d'image chooser: text alt

Comment puis-je faire mon icône apparaissent dans ce menu comme une ressource classpath? L'image fonctionne si un chemin absolu est donné, mais je ne veux pas utiliser cette option dans mon application.

Merci!

Était-ce utile?

La solution

Pour ajouter facilement une icône à mon classpath, j'ai trouvé mon icône désirée, faites un clic droit il, sélectionné « copie », puis est allé à l'un des paquets de mon projet dans Eclipse, faites un clic droit et choisi « coller ». La prochaine fois que j'ai soulevé la boîte de dialogue Chooser d'image, mon paquet locale avait l'icône répertorié comme une ressource disponible classpath, et je l'ai choisi. image sélecteur

j'ai pu exporter le projet à un runnable JAR, et l'icône fonctionnait toujours.

Autres conseils

La solution que je trouve de travailler est de créer un pot contenant vos images et l'ajouter à votre chemin de classe. Ensuite, vous pourrez les choisir dans la boîte de dialogue dans votre deuxième capture d'écran.

Je me souviens de cette habitude de travailler avec des répertoires qui sont dans votre chemin de construction. Maintenant, il semble être forcé d'être dans un paquet de pot.

Pour ajouter tout type d'image pris en charge à votre projet, juste cliquer sur « src » dossier de votre projet et Nouveau ... Forfait ... et sous nom donne, par exemple, « ressources ». Après cela, il vous suffit de copier vos images là-bas. Lorsque vous exportez le projet à un runable JAR, toutes les ressources vont ensemble et fonctionne très bien.

Je ne sais pas comment faire cela dans WindowBuilder, mais vous pouvez spécifier une ressource Image tout en construisant la Shell via setImage() ou setImages(). Je suggère d'utiliser ce dernier, car il fournit la plate-forme avec les différentes icônes de résolution, y compris la boîte de commande de la fenêtre, la barre des tâches Windows et alt + liste des onglets.

Jetez un oeil à cet extrait.

Pour le charger à partir d'une ressource:

final Image small = new Image(shell.getDisplay(),
        "resources/images/icon_16.png");
final Image large = new Image(shell.getDisplay(),
        "resources/images/icon_32.png");
final Image[] images = new Image[] { small, large };
shell.setImages(images);

Dans cet exemple, j'ai un sous-dossier « ressources », contenant des « images », puis deux PNGs. Spécification d'un JAR de ressources devrait fonctionner de la même manière, même si je ne l'ai pas essayé.

Dans mon cas, WindowBuilder reconnu le format * .ico mais ne remplace pas la valeur par défaut icône Java avec mon icône personnalisée. Ce fut seulement quand je me suis converti le * .ico à * .png ( grâce à cet outil en ligne pratique ) qui WindowBuilder enfin changé Java par défaut icône pour mon habitude « icône », même si elle est vraiment un PNG. Je m'y attendais WindowBuilder pour être en mesure de reconnaître le format ICO.

Dans Eclipse Juno 4.2. l'image ne chooser souvent montre pas le dossier de ressources (par exemple à partir d'un projet structuré Maven:.. src / universe des ressources / Vraisemblablement qui est un bug

Si vous supprimez, puis ajoutez le dossier des ressources explicitement avec l'option include dans la fenêtre de compilation Java Path (Source Tab), il affiche. Même après le retrait du « include » option et le mettre en « Tous », il affichera encore.

Bien sûr, vous pouvez supprimer et ajouter directement à partir du menu contextuel, quand un clic droit sur le fichier src / dossier principal des ressources /.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top