IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

AWT/Swing Java Discussion :

Portabilité de Swing


Sujet :

AWT/Swing Java

  1. #1
    Membre confirmé
    Inscrit en
    Février 2007
    Messages
    162
    Détails du profil
    Informations forums :
    Inscription : Février 2007
    Messages : 162
    Par défaut Portabilité de Swing
    Bonjour a tous, je débute totalement en Java...je me suis laissé tenté par eclipse puis par Visual Editor et enfin par Swing.

    Je voulais savoir a quel niveau été la portabilité de swing...
    Qu'est ce qu'il faudra changer en clair entre la version windows et linux...
    Je voulais aussi savoir (comme ça sa fera d'une pierre 2 coups), si JAVA inclus ça propre liste d'API...(par exemple j'aurais besoin d'une api qui recupère la source html d'une page web, ou encore une api qui ouvre une boite de dialogue pour enregistrer un fichier).


    Merci à ceux qui prendront le temps de me lire et de me répondre

  2. #2
    Expert confirmé
    Avatar de sinok
    Profil pro
    Inscrit en
    Août 2004
    Messages
    8 765
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Août 2004
    Messages : 8 765
    Par défaut
    Bah oui, Swing est portable quelquesoit l'OS: pour la récupération de pageWeb c'est pas bien dûr en bricolant avec les classes URL et InputStream, puis pour l'enregistrement c'est prévu dans Swing avec le JFileChooser

  3. #3
    Membre confirmé
    Inscrit en
    Février 2007
    Messages
    162
    Détails du profil
    Informations forums :
    Inscription : Février 2007
    Messages : 162
    Par défaut
    ok merci pour cette réponse rapide.
    mais alors s'il n'ya rien de différent entre un prog java windows et linux pourquoi alors à chaque fois y a 2 versions diférentes à telecharger (exemple avec azureus) ?

  4. #4
    Membre émérite
    Avatar de sironimo
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    669
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations forums :
    Inscription : Mai 2004
    Messages : 669
    Par défaut
    Tout simplement car la différence n'est pas dans l'IHM mais dans les protocoles de communication avec l'OS.

  5. #5
    Expert confirmé
    Avatar de sinok
    Profil pro
    Inscrit en
    Août 2004
    Messages
    8 765
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Août 2004
    Messages : 8 765
    Par défaut
    Non, c'est qu'azureus n'utilise pas Swing mais SWT (à l'odentique d'eclipse), ensuite les protocoles réseau sont les mêmes.

  6. #6
    Membre Expert
    Profil pro
    Inscrit en
    Août 2006
    Messages
    3 277
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 3 277
    Par défaut
    Et en complément, je dirais que tu as une version par OS, pour tenir compte des spécificités de chaque OS. Ca concerne plus, l'installation et le lancement de l'application, car l'application en elle même est identique.
    Je parle des applis swing en général.

  7. #7
    Expert éminent
    Avatar de adiGuba
    Homme Profil pro
    Développeur Java/Web
    Inscrit en
    Avril 2002
    Messages
    13 938
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Java/Web
    Secteur : Transports

    Informations forums :
    Inscription : Avril 2002
    Messages : 13 938
    Billets dans le blog
    1
    Par défaut
    Salut,

    Citation Envoyé par fr1man
    Et en complément, je dirais que tu as une version par OS, pour tenir compte des spécificités de chaque OS. Ca concerne plus, l'installation et le lancement de l'application, car l'application en elle même est identique.
    Je parle des applis swing en général.
    Et même les applis Java en général !

    Cela peut donc également inclure certaines librairies natives parfois nécessaire...



    Mais il faut noter qu'il est possible d'uniformiser cela en déployant via Java Web Start...

    a++

  8. #8
    Rédacteur
    Avatar de lunatix
    Homme Profil pro
    Architecte technique
    Inscrit en
    Novembre 2002
    Messages
    1 960
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Architecte technique

    Informations forums :
    Inscription : Novembre 2002
    Messages : 1 960
    Par défaut
    azureus, c'est effectivement parce que c'est pas du swing, mais du swt

    sinon, c'est surtout pour fournir un instaleur. Tu as souvent une install windows, une osX, une linux et une multiplate forme dans les téléchargements

  9. #9
    Membre confirmé
    Inscrit en
    Février 2007
    Messages
    162
    Détails du profil
    Informations forums :
    Inscription : Février 2007
    Messages : 162
    Par défaut
    Citation Envoyé par sironimo
    Tout simplement car la différence n'est pas dans l'IHM mais dans les protocoles de communication avec l'OS.
    Et en français ça donne koi ? J'ai rien compris désolé

    Citation Envoyé par lunatix
    azureus, c'est effectivement parce que c'est pas du swing, mais du swt

    sinon, c'est surtout pour fournir un instaleur. Tu as souvent une install windows, une osX, une linux et une multiplate forme dans les téléchargements
    je ne savais pas que swt dépendait de l'OS ! J'ai donc bien fais de partir sur swing !


    Sinon c'est vrai j'avais pas pensé a l'installateur !


    -------

    ok Donc en gros, si je fais mon appli avec swing je n'aurais pas de problème de portabilité, je n'aurais rien a changer...
    sanchant que mon appli gère une base de donnée de divx et va chercher les infos des films sur internet...

  10. #10
    Expert éminent
    Avatar de adiGuba
    Homme Profil pro
    Développeur Java/Web
    Inscrit en
    Avril 2002
    Messages
    13 938
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Java/Web
    Secteur : Transports

    Informations forums :
    Inscription : Avril 2002
    Messages : 13 938
    Billets dans le blog
    1
    Par défaut
    Citation Envoyé par lex13
    ok Donc en gros, si je fais mon appli avec swing je n'aurais pas de problème de portabilité, je n'aurais rien a changer...
    Disons que les problèmes ne viendrons pas de Swing en tout cas !


    Ensuite tu dois quand même respecter certaines règles :
    • Par exemple pour les chemins de fichier, tu ne dois pas utiliser '\' ou '/', mais File.separator (a noter toutefois que si le chemin n'est pas destiné à être affiché à l'utilisateur, tu peux utiliser '/' qui fonctionnera aussi bien sous Windows que sous les Unix).
    • De même tu ne dois pas te baser sur des spécificités d'un système (appel de programme externe, etc.).
    • Enfin, si tu utilises des librairies natives, tu devras gérer les différentes versions selon les systèmes cibles (et peut-être restreindre la compatibilité si ces librairies ne sont pas porté sur un système).



    Mais concrètement pour une interface graphique Swing et du réseaux, il y a tout ce qu'il faut en standard !

    Par contre, le point qui pourrait te gêner c'est l'intégration au système : certaine fonctionnalité basique du système ne sont pas forcément disponible (quoique Java 6 a apporté quelques améliorations de ce coté là).

    a++

  11. #11
    Membre émérite
    Avatar de sironimo
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    669
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations forums :
    Inscription : Mai 2004
    Messages : 669
    Par défaut
    Citation Envoyé par lex13
    Et en français ça donne koi ? J'ai rien compris désolé
    que je me suis vautré vu que Azureus est développé en SWT pourtant je le savais...

    Sinon je pensais entre autre chose en parlant de communication à l'installation.

  12. #12
    Membre confirmé
    Inscrit en
    Février 2007
    Messages
    162
    Détails du profil
    Informations forums :
    Inscription : Février 2007
    Messages : 162
    Par défaut
    Citation Envoyé par adiGuba
    [*]Par exemple pour les chemins de fichier, tu ne dois pas utiliser '\' ou '/', mais File.separator (a noter toutefois que si le chemin n'est pas destiné à être affiché à l'utilisateur, tu peux utiliser '/' qui fonctionnera aussi bien sous Windows que sous les Unix).
    Ok merci pour l'astuce, c'est noté !

    Citation Envoyé par adiGuba
    [*]De même tu ne dois pas te baser sur des spécificités d'un système (appel de programme externe, etc.).
    Justement si, dans l'appli, il y a une option pour lancer le film ou pour lancer la page du film d'allocine sur les applis par défaut correspondantes

    Citation Envoyé par adiGuba
    [*]Enfin, si tu utilises des librairies natives, tu devras gérer les différentes versions selon les systèmes cibles (et peut-être restreindre la compatibilité si ces librairies ne sont pas porté sur un système).
    [...]
    Ca j'ai pas trop compris, mais je pense que je vais voir ça petit à petit

    Citation Envoyé par adiGuba
    Par contre, le point qui pourrait te gêner c'est l'intégration au système : certaine fonctionnalité basique du système ne sont pas forcément disponible (quoique Java 6 a apporté quelques améliorations de ce coté là).
    Ouep, j'espère juste qu'il y a les fonctions natives qui me sont nécessaires ! (Comme la gestion d'une base de donnée)

    D'ailleur vous savez quel type de base de donnée il faut que j'utilise pour que ce soit compatible avec linux et windows ?

  13. #13
    Expert éminent
    Avatar de adiGuba
    Homme Profil pro
    Développeur Java/Web
    Inscrit en
    Avril 2002
    Messages
    13 938
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Java/Web
    Secteur : Transports

    Informations forums :
    Inscription : Avril 2002
    Messages : 13 938
    Billets dans le blog
    1
    Par défaut
    Citation Envoyé par lex13
    Justement si, dans l'appli, il y a une option pour lancer le film ou pour lancer pour lancer la page du film d'allocine...
    Hé hé hé ! C'est là qu'on rigole !

    Le mieux serait de demander à l'utilisateur de spécifier le chemin des programmes pour lire les vidéos et pour le navigateur (et de sauvegarder ce chemin pour éviter de lui demander à chaque fois).

    A noter que Java SE 6 propose "en partie" ces fonctionnalités :
    • La méthode Desktop.open() permet d'ouvrir un fichier avec le programme auquel il est associé.
    • La méthode Desktop.browse() permet quand à elle d'afficher une page sur le navigateur par défaut.


    J'ai dit "en partie" car en fait cela n'est pas disponible sur tout les systèmes (car très dépendant du système lui-même), et qu'il faut vérifier si c'est supporté avec les méthode Desktop.isDesktopSupported() et Desktop.isSupported(Action)...

    donc dans le cas où cela ne serait pas supporté il faudra une solution alternative (demander & sauvegarder le nom du programme par exemple).


    Si tu n'utilises pas Java 6 tu as toujours la possibilité d'utiliser la librairie native JDIC qui propose les mêmes possibilités (mais qui n'est portable que sous Windows/Linux/Solaris).

    Citation Envoyé par lex13
    Ca j'ai pas trop compris, mais je pense que je vais voir ça petit à petit
    Les librairies "natives" comporte deux éléments : une librairie Java normale et une librairie en code natif (généralement C/C++) qui est donc différentes d'une système à l'autre.

    Donc si tu utilises une librairie native (comme JDIC) tu devras "changer" la librairie en code natif selon le système cible...


    Soit tu fais plusieurs installateurs par système, soit tu utilises Java Web Start qui permet de faire cela assez facilement...


    Citation Envoyé par lex13
    Ouep, j'espère juste qu'il y a les fonctions natives qui me sont nécessaires ! (Comme la gestion d'une base de donnée)
    JDBC est standard et te permet de manipuler n'importe quel BD...

    Citation Envoyé par lex13
    D'ailleur vous savez quel type de base de donnée il faut que j'utilise pour que ce soit compatible avec linux et windows ?
    N'importe laquelle ! Il faut juste que tu utiliser le drivers JDBC correspondant (voir la FAQ JDBC).

    Tu as ensuite le choix entre une BD "normale" qui devra donc être installé en plus de ton programme, ou alors une BD embarqué en Java (comme derby ou hsqldb).

    a++

  14. #14
    Membre confirmé
    Inscrit en
    Février 2007
    Messages
    162
    Détails du profil
    Informations forums :
    Inscription : Février 2007
    Messages : 162
    Par défaut
    Citation Envoyé par adiGuba
    Hé hé hé ! C'est là qu'on rigole !

    Le mieux serait de demander à l'utilisateur de spécifier le chemin des programmes pour lire les vidéos et pour le navigateur (et de sauvegarder ce chemin pour éviter de lui demander à chaque fois).

    A noter que Java SE 6 propose "en partie" ces fonctionnalités :
    • La méthode Desktop.open() permet d'ouvrir un fichier avec le programme auquel il est associé.
    • La méthode Desktop.browse() permet quand à elle d'afficher une page sur le navigateur par défaut.


    J'ai dit "en partie" car en fait cela n'est pas disponible sur tout les systèmes (car très dépendant du système lui-même), et qu'il faut vérifier si c'est supporté avec les méthode Desktop.isDesktopSupported() et Desktop.isSupported(Action)...

    donc dans le cas où cela ne serait pas supporté il faudra une solution alternative (demander & sauvegarder le nom du programme par exemple).


    Si tu n'utilises pas Java 6 tu as toujours la possibilité d'utiliser la librairie native JDIC qui propose les mêmes possibilités (mais qui n'est portable que sous Windows/Linux/Solaris).
    Je pense que je vais opter pour la dernière solution ! Windows et linux suffisent ! De toutes façon j'ai l'impression que JDIC est une bonne solution !


    Citation Envoyé par adiGuba
    Les librairies "natives" comporte deux éléments : une librairie Java normale et une librairie en code natif (généralement C/C++) qui est donc différentes d'une système à l'autre.

    Donc si tu utilises une librairie native (comme JDIC) tu devras "changer" la librairie en code natif selon le système cible...

    Soit tu fais plusieurs installateurs par système, soit tu utilises Java Web Start qui permet de faire cela assez facilement...
    Ok la j'ai compris ! Tant que le code source ne doit pas être différent et qu'il suffit de changer juste les librairies natives dans les installateurs, ça me convient !

    Citation Envoyé par adiGuba
    JDBC est standard et te permet de manipuler n'importe quel BD...
    N'importe laquelle ! Il faut juste que tu utiliser le drivers JDBC correspondant (voir la FAQ JDBC).
    Tu as ensuite le choix entre une BD "normale" qui devra donc être installé en plus de ton programme, ou alors une BD embarqué en Java (comme derby ou hsqldb).
    Ba ma fois si "derby" ou "hsqldb" sont des bons types de base de données ça conviendra !
    Edit : j'ai un petit penchant pour hsqldb !

    OUF et bien merci pour toutes ces informations ! je crois que j'ais assimilé assez de nouveauté aujourd'hui merci a tous et a toi adGuda !

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Portabilité des applis swing dev avec NetBeans
    Par giloutho dans le forum NetBeans
    Réponses: 12
    Dernier message: 02/12/2007, 03h08
  2. Réponses: 11
    Dernier message: 17/03/2003, 11h56
  3. [SWING]jTable + Focus
    Par chady dans le forum Composants
    Réponses: 5
    Dernier message: 27/02/2003, 15h51
  4. [SWING][FONT] choisir la police par défaut
    Par narmataru dans le forum AWT/Swing
    Réponses: 4
    Dernier message: 21/02/2003, 11h35
  5. portabilité et BDD
    Par delire8 dans le forum C++Builder
    Réponses: 7
    Dernier message: 04/07/2002, 11h59

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo