jeremeclip
Messages postés30Date d'inscriptionjeudi 2 août 2007StatutMembreDernière intervention19 janvier 2008
-
25 déc. 2007 à 12:53
Ombitious_Developper
Messages postés2333Date d'inscriptionsamedi 28 février 2004StatutMembreDernière intervention26 juillet 2013
-
25 déc. 2007 à 19:34
bonjour voici mon probleme. Je viens de faire une petite application
donc dans cette application je doit avoir une image de fond et par
dessu j'ia des bouton tranparent donc tout marche quand je lance
l'application avec eclipse mais dans que je le lance dans un jar
executable impossible d'avoir l'image
voici le code de l'application
il ya peut etre une fautes ou je n'utilise peut etre pas bien une fonstion de java pour inserer une image
//Déclaration des boutons et du Panel
JPanel Menu;
JPanel bouton;
JButton Connection;
JButton Enregistrer;
JButton Aide;
JButton Option;
JButton Quitter;
Menu()throws IOException {
Menu = new JPanel();
//Afecte un gestionnaire de présentation a ce panneau
BorderLayout disposition = new BorderLayout();
Menu.setLayout(disposition);
//Crée les bouton en utilisant le constructeur de la classe
//JButton qui prend en paramètre le libellé du bouton
Connection = new JButton("");
Enregistrer = new JButton("");
Aide = new JButton("");
Option = new JButton("");
Quitter = new JButton("");
JFrame frame = new JFrame("History And Futury");
frame.setContentPane(Menu);
//les different option de la frame
frame.setDefaultCloseOperation(frame.EXIT_ON_CLOSE);
//rend la frame visible
frame.setVisible(true);
//affiche l'image
frame.add(new Zone());
//donne les mesure de la Frame
frame.setBounds(500,280,347,457);
Menu.setLayout(null);
//enregistrer mes bouton dans le panneau menu
Menu.add(Connection);
Menu.add(Enregistrer);
Menu.add(Aide);
Menu.add(Option);
Menu.add(Quitter);
//Positionne les bouton a l'endroit indiquer
Connection.setBounds(55, 123, 220, 30);
Enregistrer.setBounds(55, 180, 220, 30);
Aide.setBounds(55, 239, 220, 30);
Option.setBounds(55, 296, 220, 30);
Quitter.setBounds(55, 353, 220, 30);
//rend les boutons invisible a l'oeil mais reste actif
Connection.setContentAreaFilled(false);
Enregistrer.setContentAreaFilled(false);
Aide.setContentAreaFilled(false);
Option.setContentAreaFilled(false);
Quitter.setContentAreaFilled(false);
moteur_Menu moteurCalcul = new moteur_Menu(this);
Connection.addActionListener(moteurCalcul);
}
publicstaticvoid main(String[] args)throws IOException {
Menu me = new Menu();
}
}
class Zone extends JComponent{
private BufferedImage image;
public Zone()throws IOException {
Ombitious_Developper
Messages postés2333Date d'inscriptionsamedi 28 février 2004StatutMembreDernière intervention26 juillet 201339 25 déc. 2007 à 15:19
Salut:
Utilises la méthode getResourceAsStream() qui est méthode des deux classes Class ou ClassLoader.
Ombitious_Developper
Messages postés2333Date d'inscriptionsamedi 28 février 2004StatutMembreDernière intervention26 juillet 201339 25 déc. 2007 à 16:58
Salut:
Il y a plusieurs façons pour exploiter la méthode getResourceAsStream(), vu que tu utilises des objets de la classe BufferedImage, tu peux procéder ainsi:
/**
* Cette classe charge une image qui se situe relativement
* à une classe donnée.
*/
public class JarImageLoader {
public static BufferedImage getImage(Class cls, String filename) {
try {
return ImageIO.read(cls.getResourceAsStream(filename));
}
catch (Throwable e) {
return null;
}
}
}
Supposons qu'auprès de la classe Toto il y a une image "image.png":
BufferedImage bi = JarImageLoader.getImage(Toto.class, "image.png");
jeremeclip
Messages postés30Date d'inscriptionjeudi 2 août 2007StatutMembreDernière intervention19 janvier 2008 25 déc. 2007 à 17:45
si j'ai bien compris je met
**
* Cette classe charge une image qui se situe relativement
* à une classe donnée.
*/
public class JarImageLoader {
public static BufferedImage getImage(Class cls, String filename) {
try {
return ImageIO.read(cls.getResourceAsStream(filename));
}
catch (Throwable e) {
return null;
}
}
}
dans une nouvelle page dans eclipse
et ceci
BufferedImage bi = JarImageLoader.getImage(Toto.class, "image.png");
dans le code qui ets site plus haut
c'est sa ?
Vous n’avez pas trouvé la réponse que vous recherchez ?
Ombitious_Developper
Messages postés2333Date d'inscriptionsamedi 28 février 2004StatutMembreDernière intervention26 juillet 201339 25 déc. 2007 à 19:34
Salut:
Notre professeur Mme Najjar disait toujours: "Il faut apprendre les bonnes manières".
Lorsqu'on developpe une application (Java ou autre) il faut bien diviser les différentes unités fonctionnelles de ton application en plusieurs packages.
Dans notre cas, il vaut mieux créer un package pour les classes utilitaire [Helper Classes] qui sont les classes à usage général et qui peuvent être utiliser dans les future projets, c'est dans ce package que tu peux mettre cette nouvelle classe [JarImageLoader].
Puis, chaque fois que tu aura besoin de cette classe tu fais l'appel de la méthode en question.