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

Java Discussion :

module-info, vielle librairie, JXTable vs JTable et intell JIdea


Sujet :

Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Homme Profil pro
    dev. full stack
    Inscrit en
    Octobre 2016
    Messages
    69
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : Belgique

    Informations professionnelles :
    Activité : dev. full stack
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Octobre 2016
    Messages : 69
    Par défaut module-info, vielle librairie, JXTable vs JTable et intell JIdea
    Bonjour,

    Je suis assez embêté par la situation suivante.
    Afin de traiter des fichiers json avec beaucoup d'imbrication, j'utilise la libraire com.fasterxml.jackson.

    Lorsque j'ai voulu compiler, j'ai eu une erreur car il ma manquait le module java.desktop
    Donc, en cherchant un peu, j'ai découvert qu'il me fallait un fichier module-info.java et par la même je découvre une fonctionnalité du JDK 9 (plutôt une source d'emmerde pour moi).

    Avec IntellJ idea, je fais créer le fichier et j'ajoute la ligne

    Mais après, le programme à commencer à me mettre des errors à certains endroits.
    Ainsi, j'ai en rouge (erreur) :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    import com.fasterxml.jackson.databind.JsonNode;
    import com.fasterxml.jackson.databind.ObjectMapper;
    et aussi

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    import org.json.JSONArray;
    import org.json.JSONObject;
    import org.json.JSONTokener;
    J'ai par ailleurs du aussi rajouté


    Il y avait un troisème import en rouge : or.jdesktop.swingx.

    POur éliminer ce package, j'ai du changer mon interface pour abonner JTaskPanel..

    Mais, j'ai un autre package qui utilise JXTable..
    Je peux changer vers JTable, mais je ne sais pas ce que je perd en fonctionnalité

    Donc mes questions sont :
    JXTable vs JTable
    Comment faire pour que org.json & com.fasterxml.jackson ne soient pas considéré comme des modules.

    Dans ce projet, j'utilise pas Gradle ou Grovy, c'est un programme qui à plus de 20 ans.
    Je choisi d'abandonner org.jdesktop.swingx à cause qu'il n'est plus maintenu... merci Oracle

  2. #2
    Membre confirmé
    Homme Profil pro
    dev. full stack
    Inscrit en
    Octobre 2016
    Messages
    69
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : Belgique

    Informations professionnelles :
    Activité : dev. full stack
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Octobre 2016
    Messages : 69
    Par défaut JTable vs JXtable
    Passer à JavaFX va me couter un certain temps en terme de développement et en plus, j'ai l'impression que la licence n'est pas simple du tout.

  3. #3
    Rédacteur/Modérateur

    Avatar de bouye
    Homme Profil pro
    Information Technologies Specialist (Scientific Computing)
    Inscrit en
    Août 2005
    Messages
    6 907
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : Nouvelle-Calédonie

    Informations professionnelles :
    Activité : Information Technologies Specialist (Scientific Computing)
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Août 2005
    Messages : 6 907
    Billets dans le blog
    54
    Par défaut
    JavaFX est en OpenSource et n'a pas ce soucis de license particulièrement gênant (contrairement au JDK d'Oracle). Par contre le support technique optionnel propose par Gluon est payant.
    Mais la n'est pas le cœur du problème.

    Tu peux généralement continuer a faire des applications non-modulaires avec les JDK 9 a 23, mais il faut souvent rajouter des lignes de commande supplémentaires pour compiler et exécuter genre, sauf erreur de ma part, --module-path qui liste les repertoires a rajouter pour la recherche des modules et --modules qui liste tous les modules utilises (séparés par des virgules).

    Après, ca fait pas mal de temps que je me casse plus la tete et que je fais des applications modulaires, ce qui s'active automatiquement quand on rajoute un fichier module-info.java a la racine des sources. Cela ne règle pas tous les soucis bien sur, par exemple les libs anciennes non-modulaires ont leur pseudo nom de module qui est généré d’après le nom du fichier JAR mais parfois certains IDE ont des soucis avec des nom trop complexes. De plus certaines libs tierces aiment pas la modularisation car ca casse certains trucs (entre autre l'introspection ou l’accès a des ressources sur des JAR séparés, les accès a des classes qui JDK qui ne sont plus désormais accessibles publiquement, etc.).

    java.desktop fait partie des modules standards du JDK, donc y a pas vraiment de raison que JTable soit pas accessible dans une app non-modulaire ou modulaire. Par contre pour ce qui est de SwingX la je sais pas trop.

    Faudrait tester chaque partie qui pose soucis sur des exemples / projets simplifies avant de tenter de mettre le bazar dans le gros programme de 20 ans d'age.
    Quelle version de SwingX et Jackson utilises-tu ?
    Merci de penser au tag quand une réponse a été apportée à votre question. Aucune réponse ne sera donnée à des messages privés portant sur des questions d'ordre technique. Les forums sont là pour que vous y postiez publiquement vos problèmes.

    suivez mon blog sur Développez.

    Programming today is a race between software engineers striving to build bigger and better idiot-proof programs, and the universe trying to produce bigger and better idiots. So far, the universe is winning. ~ Rich Cook

  4. #4
    Rédacteur/Modérateur

    Avatar de bouye
    Homme Profil pro
    Information Technologies Specialist (Scientific Computing)
    Inscrit en
    Août 2005
    Messages
    6 907
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : Nouvelle-Calédonie

    Informations professionnelles :
    Activité : Information Technologies Specialist (Scientific Computing)
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Août 2005
    Messages : 6 907
    Billets dans le blog
    54
    Par défaut
    Pour ce qui est de SwingX, j'ai recupere dans le stockage Maven le dernier JAR d'un des forks qui ont continue le projet, puis j'ai cree une application non-modulaire Swing avec le JDK 23 dans IDEA et j'ai pu mettre une JXTable dans un petite appli de test sans soucis.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    package test.jxtable;
     
    import org.jdesktop.swingx.JXTable;
     
    import javax.swing.*;
    import java.awt.*;
     
    public final class Main extends JFrame {
     
        Main() {
            // Columns.
            final var columns = new String[]{
                    "Id", "Name", "Hourly Rate", "Part Time"
            };
     
            // Data.
            final var data = new Object[][]{
                    {1, "John", 40.0, false},
                    {2, "Rambo", 70.0, false},
                    {3, "Zorro", 60.0, true},
            };
            final var table = new JXTable(data, columns);
            table.setShowGrid(true);
    //        table.setColumnControlVisible(true);
            setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
            setLayout(new BorderLayout());
            add(new JScrollPane(table), BorderLayout.CENTER);
            setTitle("Test");
            setPreferredSize(new Dimension(800, 600));
        }
     
        public static void main(final String... args) {
            SwingUtilities.invokeLater(() -> launch(args));
        }
     
        private static void launch(final String... args) {
            final var main = new Main();
            main.pack();
            main.setVisible(true);
        }
    }
    Merci de penser au tag quand une réponse a été apportée à votre question. Aucune réponse ne sera donnée à des messages privés portant sur des questions d'ordre technique. Les forums sont là pour que vous y postiez publiquement vos problèmes.

    suivez mon blog sur Développez.

    Programming today is a race between software engineers striving to build bigger and better idiot-proof programs, and the universe trying to produce bigger and better idiots. So far, the universe is winning. ~ Rich Cook

  5. #5
    Membre confirmé
    Homme Profil pro
    dev. full stack
    Inscrit en
    Octobre 2016
    Messages
    69
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : Belgique

    Informations professionnelles :
    Activité : dev. full stack
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Octobre 2016
    Messages : 69
    Par défaut
    Pour la librairie Jackson, j'utilise la version : 2.18
    Pour jdesktop.swingx, c'est une version de 2011..

  6. #6
    Membre confirmé
    Homme Profil pro
    dev. full stack
    Inscrit en
    Octobre 2016
    Messages
    69
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : Belgique

    Informations professionnelles :
    Activité : dev. full stack
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Octobre 2016
    Messages : 69
    Par défaut
    EN fait, ce qui me dérange, c'est que Intellj Idea me donne des erreurs alors que la compilation et l'usage de l'application est OK.

    Nom : 2024-10-07 11_07_50-.png
Affichages : 121
Taille : 22,9 Ko

    En plus, j'ai des librairies externe dont une qui permet au programme de faire des modèles de calcul en programmation linéaire.
    J'utilise aussi les librairies apache common ftp, jopendocument, ...

    Et toutes ces librairies (excepté celle de programmatio linaire) sont stockées dans un répertoire libs, je sais pas du tout comment faire pour aussi du même "projet" faire des modules.
    J'utilise pas non plus gradle.

Discussions similaires

  1. Réponses: 1
    Dernier message: 25/08/2024, 12h27
  2. demande info de la fonction move dans un module
    Par lechtifred dans le forum Access
    Réponses: 1
    Dernier message: 01/05/2006, 15h04
  3. [NetBeans] [débutant][module] ajouter librairie ou projet
    Par ragingcat dans le forum NetBeans
    Réponses: 3
    Dernier message: 28/12/2005, 20h29
  4. Réponses: 3
    Dernier message: 25/01/2005, 11h27

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