JAVA Window seven 64 bits ? [Résolu]

Messages postés
35
Date d'inscription
jeudi 30 juin 2011
Statut
Membre
Dernière intervention
2 août 2011
- - Dernière réponse : cs_Julien39
Messages postés
6413
Date d'inscription
mardi 8 mars 2005
Statut
Modérateur
Dernière intervention
17 mai 2018
- 30 juin 2011 à 16:29
Bonjour,

Je suis nouveau sur le forum. Je développe pour mon entreprise une application JAVA, qui permet de montrer aux clients les "nouveautés".

A coté de cela je réalise des modélisations 3D (+ animations) sous Maya, je travaille donc sur un Seven 64bits. J'utilise Eclipse pour programmer et j'ai voulu faire un test de portabilité.

J'ai crée le .jar, bilan :

Mon appli bug sur mon PC, mais fonctionne sur un XP... Les textes des boutons s'affichent tous les uns sur les autres, ça fout un bordel monstre ! De plus quand je clique sur un bouton, au bout d'un certain nombre de fois il affiche la page correspondante DANS le bouton... Pas bien !!

Je ne comprend pas et me demande si le problème ne vient pas de mon système. Si oui comment le régler ?

Je me suis formé tout seul en Java donc pas trop de mot savant svp

Merci d'avance ! (De la part de mon DG )
Afficher la suite 

15 réponses

Meilleure réponse
Messages postés
6413
Date d'inscription
mardi 8 mars 2005
Statut
Modérateur
Dernière intervention
17 mai 2018
250
3
Merci
Tu parles d'un .jar exécutable ? Je pense que oui.

Tu as certainement mal spécifié le chemin ou se trouve cette icone (je pense) tu as utilisé un chemin relatif ? absolu ?

Dans tous les cas, j'ai fait un tutoriel sur la facon d'insérer les images dans un .jar, je te conseil de le lire

Dire « Merci » 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 191 internautes nous ont dit merci ce mois-ci

Commenter la réponse de cs_Julien39
Messages postés
6413
Date d'inscription
mardi 8 mars 2005
Statut
Modérateur
Dernière intervention
17 mai 2018
250
0
Merci
Normalement en Java, tu n'as aucun soucis de portabilité, je passe depuis des années de windows, à linux sans aucun soucis alors j'imagine que de windows à windows, tout devrait bien se passer.

Le seul soucis peut être une question de version de la jvm (la version de l'installation java) si ce n'est pas la même, tu peux avoir des bugs mais je ne pense pas que ca vienne de ca.

Si ton code n'est pas trop long, peux tu le publier ? Tu utilises une interface Swing ?
Commenter la réponse de cs_Julien39
Messages postés
35
Date d'inscription
jeudi 30 juin 2011
Statut
Membre
Dernière intervention
2 août 2011
0
Merci
Alors tu abordes un autre soucis... J'utilise à la fois la swing et la awt. J'ai vu que ça causait un problème s'affichage (superposition). Mais est ce que cela changerait de conséquence suivant XP ou seven ?

Le problème est que j'ai organisé le code en différentes classes (j'ai appris avec le tuto du siteduzero) donc une classe fenêtre qui crée les composants de celle-ci, une autre qui crée les boutons,...

Je te file ces deux là. Pour les version de Java, ceux sont les mêmes...

Classe Fenetre
import java.awt.BorderLayout;
import java.awt.CardLayout;
import java.awt.GridLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

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



@SuppressWarnings("serial")
public class Fenetre extends JFrame
{

private JPanel container =  new JPanel();
private Banniere PanelHaut = new Banniere();
//Creation of all buttons
private Bouton bouton1 = new Bouton("Analyse");
private Bouton bouton2 = new Bouton("Débit");
private Bouton bouton3 = new Bouton("Pression & Température");
private Bouton bouton4 = new Bouton("Acquisition & Données");
private Bouton bouton5 = new Bouton("Automates & Supervision");
private Bouton bouton6 = new Bouton("SNCC & Sécurité");
private Bouton bouton7 = new Bouton("Vigilantplant");
private Bouton bouton8 = new Bouton("Home");
//Creation of all "tags"
final static String s1 = "fenetre 1";
final static String s2 = "fenetre 2";
final static String s3 = "fenetre 3";
final static String s4 = "fenetre 4";
final static String s5 = "fenetre 5";
final static String s6 = "fenetre 6";
final static String s7 = "fenetre 7";
final static String s8 = "fenetre 8";
//Creation of all Panels
private Panneau Cards = new Panneau();
private Analyse pan1 = new Analyse();
private Debit pan2 = new Debit();
private Pression pan3 = new Pression();
private Acquisition pan4 = new Acquisition();
private Automates pan5 = new Automates();
private Sncc pan6 = new Sncc();
private Vigilantplant pan7 = new Vigilantplant();
private Home pan8 =  new Home();
    
public Fenetre()
{
//Creation of the window
this.setIconImage(new ImageIcon("icone.jpg" ).getImage());
        this.setTitle("dudule");
        this.setSize(800, 600);
        this.setResizable(false);
        this.setLocationRelativeTo(null);
        //Closing the window
        /*this.addWindowListener
        	(
        		new java.awt.event.WindowAdapter()
        		{
        			public void windowClosing(java.awt.event.WindowEvent evt)
        			{
        				hide();
        			} 
        		}
        	);*/
        
        //Creation of the organization
        container.setLayout(new BorderLayout());
        
        //Creation of the Top
        PanelHaut.setLayout(new GridLayout(2,4,5,5));	//Creation of table
        PanelHaut.add(bouton1);	//Add button1
        bouton1.addActionListener(new Bouton1Listener());	//Definition of his action
        PanelHaut.add(bouton2);
        bouton2.addActionListener(new Bouton2Listener());
        PanelHaut.add(bouton3);
        bouton3.addActionListener(new Bouton3Listener());
        PanelHaut.add(bouton4);
        bouton4.addActionListener(new Bouton4Listener());
        PanelHaut.add(bouton5);
        bouton5.addActionListener(new Bouton5Listener());
        PanelHaut.add(bouton6);
        bouton6.addActionListener(new Bouton6Listener());
        PanelHaut.add(bouton7);
        bouton7.addActionListener(new Bouton7Listener());
        PanelHaut.add(bouton8);
        bouton8.addActionListener(new Bouton8Listener());
        container.add(PanelHaut, BorderLayout.NORTH);
        
        //Creation of the page
        Cards.setLayout(new CardLayout());
        Cards.add(s8,pan8);
        Cards.add(s1,pan1);
        Cards.add(s2,pan2);
        Cards.add(s3,pan3);
        Cards.add(s4,pan4);
        Cards.add(s5,pan5);
        Cards.add(s6,pan6);
        Cards.add(s7,pan7);
        container.add(Cards, BorderLayout.CENTER);
        
        //To print the window
        this.setContentPane(container);
        
        this.setVisible(true);
}

class Bouton1Listener  implements ActionListener
{
        public void actionPerformed(ActionEvent e)
        {
        	((CardLayout) Cards.getLayout()).show(Cards,s1);
        }
}

class Bouton2Listener  implements ActionListener
{
        public void actionPerformed(ActionEvent e)
        {
        	((CardLayout) Cards.getLayout()).show(Cards,s2);
        }
}

class Bouton3Listener  implements ActionListener
{
        public void actionPerformed(ActionEvent e)
        {
        	((CardLayout) Cards.getLayout()).show(Cards,s3);
        }  
}

class Bouton4Listener  implements ActionListener
{
        public void actionPerformed(ActionEvent e)
        {
        	((CardLayout) Cards.getLayout()).show(Cards,s4);
        }
}

class Bouton5Listener  implements ActionListener
{
        public void actionPerformed(ActionEvent e)
        {
        	((CardLayout) Cards.getLayout()).show(Cards,s5);
        }
}

class Bouton6Listener  implements ActionListener
{
        public void actionPerformed(ActionEvent e)
        {
        	((CardLayout) Cards.getLayout()).show(Cards,s6);
        }  
}

class Bouton7Listener  implements ActionListener
{
        public void actionPerformed(ActionEvent e)
        {
        	((CardLayout) Cards.getLayout()).show(Cards,s7);
        }
}

class Bouton8Listener  implements ActionListener
{
        public void actionPerformed(ActionEvent e)
        {
        	((CardLayout) Cards.getLayout()).show(Cards,s8);
        }  
}
}


Classe Bouton
import java.awt.Color;
import java.awt.FontMetrics;
import java.awt.GradientPaint;
import java.awt.Graphics;
import java.awt.Graphics2D;
import java.awt.Image;
import java.io.File;
import java.io.IOException;

import javax.swing.JButton;
import javax.imageio.ImageIO;

@SuppressWarnings("serial")
public class Bouton extends JButton{
 
private String name;
private Image img;
Color jauneY   = new Color(255,255,1);
         
public Bouton(String str){
        super(str);
        this.name = str;
        
        try {
              img = ImageIO.read(new File("fondBouton.png"));
        } catch (IOException e) {
              // TODO Auto-generated catch block
              e.printStackTrace();
        }
}

public void paintComponent(Graphics g)
{
Graphics2D g2d = (Graphics2D)g;
       
GradientPaint gp = new GradientPaint(0, 0, Color.blue, 0, 20, Color.cyan, true);
g2d.setPaint(gp);
g2d.drawImage(img, 0, 0, this.getWidth(), this.getHeight(), this);

g2d.setColor(jauneY);
        
//Object permits to know properties of font, like the size !
FontMetrics fm = g2d.getFontMetrics();
//Of our font
int height = fm.getHeight();
//Of the string, with our font
int width = fm.stringWidth(this.name);
        
//To calculate the location of the string
g2d.drawString(this.name, this.getWidth() / 2 - (width / 2), (this.getHeight() / 2) + (height / 4));
}
}
Commenter la réponse de misterjoidf
Messages postés
6413
Date d'inscription
mardi 8 mars 2005
Statut
Modérateur
Dernière intervention
17 mai 2018
250
0
Merci
Le code a l'air correct.

Pour l'utilisation de Swing et awt simultanément, c'est une utilisation classique qui ne devrait pas poser problème.

Franchement ce que du dis me surprend, et je ne vois pas ce qui peut poser problème. J'espère que d'autres personnes auront des réponses à ce sujet. Si je repense à quelque chose, je te le dirai.

Bon courage
Commenter la réponse de cs_Julien39
Messages postés
6413
Date d'inscription
mardi 8 mars 2005
Statut
Modérateur
Dernière intervention
17 mai 2018
250
0
Merci
Tu n'aurais pas utilisé des setLayout(null) sur certains panels pour positionner des composants manuellement ?
Commenter la réponse de cs_Julien39
Messages postés
35
Date d'inscription
jeudi 30 juin 2011
Statut
Membre
Dernière intervention
2 août 2011
0
Merci
Lol merci ;)

Sinon autre "petite" question, quand je lance l'appli dans Eclipse j'ai bien mon icône personnalisé (en haut à gauche de la fenêtre) par contre quand je fais un .jar... j'ai la tasse JAVA, Pourquoi ?

Enfin sur XP, je ne vois pas l'image de fond de mes boutons, et si je passe sur un bouton il se met en surbrillance et le reste... Pourquoi ?

Peut-être que tout est lié ?
Commenter la réponse de misterjoidf
Messages postés
35
Date d'inscription
jeudi 30 juin 2011
Statut
Membre
Dernière intervention
2 août 2011
0
Merci
Non je savais même pas qu'on pouvait le faire !
Commenter la réponse de misterjoidf
Messages postés
6413
Date d'inscription
mardi 8 mars 2005
Statut
Modérateur
Dernière intervention
17 mai 2018
250
0
Merci
Si je te donne le lien ,ca ira peut être mieux :)

http://www.javafr.com/codes/INSERER-IMAGES-DANS-JAR-EXECUTABLE-ECLIPSE_51904.aspx
Commenter la réponse de cs_Julien39
Messages postés
35
Date d'inscription
jeudi 30 juin 2011
Statut
Membre
Dernière intervention
2 août 2011
0
Merci
Merci, je vais regarder ça...

Par contre j'ai toujours pas trouver pourquoi ça plante sur mon PC...

HELP !
Commenter la réponse de misterjoidf
Messages postés
35
Date d'inscription
jeudi 30 juin 2011
Statut
Membre
Dernière intervention
2 août 2011
0
Merci
Je pense que tu as trouvé mon problème sans le vouloir !!!!

Je m'explique : J'ai mis le dossier Image ou je voulais avoir toutes mes images... Moralité le fond de mes boutons n'étaient plus ou il était à la base. Eclispe n'a pas aimé et quand j'ai lancé mon programme dans l'environnement Eclipse j'ai eu le même problème (défaut d'affichage).

Mon problème serait donc du fait qu'il ne trouve pas l'image "fondBouton.png"

En mettant à jour le chemin, ça a marché.

Par contre ça ne marche toujours pas avec le .jar...

C'est bien ça ?

Image config Eclipse pour Jar Runnable
Commenter la réponse de misterjoidf
Messages postés
35
Date d'inscription
jeudi 30 juin 2011
Statut
Membre
Dernière intervention
2 août 2011
0
Merci
Ca y est !!!!! J'ai installé le plug-in FatJar ! Merci !!! Héhé Nickel !
Commenter la réponse de misterjoidf
Messages postés
6413
Date d'inscription
mardi 8 mars 2005
Statut
Modérateur
Dernière intervention
17 mai 2018
250
0
Merci
Oui, c'est bien comme ca qu'on fait un .jar executable
Commenter la réponse de cs_Julien39
Messages postés
6413
Date d'inscription
mardi 8 mars 2005
Statut
Modérateur
Dernière intervention
17 mai 2018
250
0
Merci
Ca marche alors parfait, même si c'est involontaire, l'important c'est que tu t'en sortes.

L'erreur était difficile à trouver, elle ne vient pas de ton code java ni des versions installées mais de la gestion de tes images.
Commenter la réponse de cs_Julien39
Messages postés
35
Date d'inscription
jeudi 30 juin 2011
Statut
Membre
Dernière intervention
2 août 2011
0
Merci
En effet ! J'ai perdu deux jours pour ça... youpi !
Commenter la réponse de misterjoidf
Messages postés
6413
Date d'inscription
mardi 8 mars 2005
Statut
Modérateur
Dernière intervention
17 mai 2018
250
0
Merci
On perd souvent du temps sur pas grand chose en informatique. Mais, il fallait en passer par là pour t'en sortir.
Commenter la réponse de cs_Julien39