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 :

Problème fenetre de chargement


Sujet :

AWT/Swing Java

  1. #1
    Membre confirmé Avatar de krolineeee
    Inscrit en
    Mars 2006
    Messages
    232
    Détails du profil
    Informations forums :
    Inscription : Mars 2006
    Messages : 232
    Par défaut Problème fenetre de chargement
    Bonjour,

    Depuis quelques jours je sèche sur ma fenetre de chargement.
    Mon application mettant quelques secondes à se lancer, j'aimerai afficher une fenêtre indiquant à l'utilisateur que le chargement est en cours...

    Voilà mon soucis est que ma fenetre de chargement apparait mais elle est vide.
    Mais pourquoi??

    Je ne vais pas poluer ce post avec tout mon code donc voilà un bout:
    Au lancement de l'appli; je crée déja ma fenetre de chargement puis la fenetre choixCatalogue (qui met un certain temps à se créer).
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
            JChargement jchar = new JChargement();
            ChoixCatalogue frame = new ChoixCatalogue(jchar);
    Dans la class ChoixCatalogue :
    Je crée ma fenetre et une fois celle-ci faite je fait un jchargmt.dispose();

    J'ai pensé à utiliser un thread mais je n'ai pas réussi

    Merci de votre aide

  2. #2
    Membre chevronné Avatar de xixi31
    Inscrit en
    Juin 2005
    Messages
    423
    Détails du profil
    Informations personnelles :
    Âge : 44

    Informations forums :
    Inscription : Juin 2005
    Messages : 423
    Par défaut
    lu,

    ca risque d'être un peu juste pour t'aider... il va falloir que tu pollues le post

  3. #3
    Membre confirmé Avatar de philobedo
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    80
    Détails du profil
    Informations personnelles :
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Avril 2004
    Messages : 80
    Par défaut
    Salut
    En fait ce que tu veux faire c'est une sorte de SplashScreen ?
    Si c'est le cas je te conseille ce très bon tut:
    http://gfx.developpez.com/tutoriel/java/swing/splash/

  4. #4
    Membre confirmé Avatar de krolineeee
    Inscrit en
    Mars 2006
    Messages
    232
    Détails du profil
    Informations forums :
    Inscription : Mars 2006
    Messages : 232
    Par défaut
    Citation Envoyé par xixi31
    lu,

    ca risque d'être un peu juste pour t'aider... il va falloir que tu pollues le post

    ok alors poluons tout ça

    Class principale de l'appli
    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
     
        public ReportingCatalogueV2() {
            JChargement jchar = new JChargement();
            ChoixCatalogue frame = new ChoixCatalogue(jchar);
            // Valider les cadres ayant des tailles prédéfinies
            // Compacter les cadres ayant des infos de taille préférées - ex. depuis leur disposition
            if (packFrame) {
                frame.pack();
            } else {
                frame.validate();
            }
     
            // Centrer la fenêtre
            //... code suppr pour pas poluer
        }
     
        /**
         * Point d'entrée de l'application.
         *
         * @param args String[]
         */
        public static void main(String[] args) {
            SwingUtilities.invokeLater(new Runnable() {
                public void run() {
                    try {
                        UIManager.setLookAndFeel(UIManager.
                                                 getSystemLookAndFeelClassName());
                    } catch (Exception exception) {
                        exception.printStackTrace();
                    }
     
                    new ReportingCatalogueV2();
                }
            });
        }
    Class JChargement
    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
     
         public JChargement() {
            try {
                setDefaultCloseOperation(EXIT_ON_CLOSE);
                jbInit();
                // Centrer la fenêtre
                //... code suppr pour pas poluer
     
            } catch (Exception exception) {
                exception.printStackTrace();
            }
        }
     
        private void jbInit() throws Exception {
            this.setTitle("Chargement en cours...");
            this.getContentPane().setLayout(borderLayout1);
            setSize(new Dimension(260, 220));
            image = new ImageIcon(ReportingCatalogueV2.class.getResource(
                    "chargCatv2.gif"));
            jLabel1 = new JLabel();
            jLabel1.setOpaque(true);
            jLabel1.setHorizontalAlignment(SwingConstants.CENTER);
            jLabel1.setHorizontalTextPosition(SwingConstants.CENTER);
            jLabel1.setIcon(image);
            this.getContentPane().add(jLabel1, java.awt.BorderLayout.CENTER);
     
        }
    Et ma Class ChoixCatalogue
    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
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
     
     public ChoixCatalogue(JChargement jchargmt) {
            this.jchargmt = jchargmt;
            try {
                setDefaultCloseOperation(EXIT_ON_CLOSE);
                /*Thread jct = new JChargThread();
                jct.start();*/
                jbInit();
                // Centrer la fenêtre
                //... code suppr pour pas poluer
     
            } catch (Exception exception) {
                exception.printStackTrace();
            }
        }
     
        /**
         * Initialisation du composant.
         *
         * @throws java.lang.Exception
         */
        private void jbInit() throws Exception {
            contentPane = (JPanel) getContentPane();
            contentPane.setLayout(null);
            setSize(new Dimension(400, 300));
            setTitle("Reporting Catalogue V2 - Choix d'un catalogue");
            this.addWindowListener(new ChoixCatalogue_this_windowAdapter(this));
            scherzo.setConnection(new ConnectionDescriptor(
                    "jdbc:oracle:thin:@192.165.1.5:1521:PSZO", "scherzo",
                    "carrefour", false, "oracle.jdbc.driver.OracleDriver"));
            queryDataSetCatal.setQuery(new QueryDescriptor(scherzo, "", null, false,
                    Load.ALL));
            jComboBoxCata.setForeground(Color.black);
            jComboBoxCata.setBounds(new Rectangle(66, 74, 269, 24));
            ResultSet rslt = exec_query(requete);
            createCombo(rslt);
            jchargmt.dispose();
            jLabel1.setFont(new java.awt.Font("Tempus Sans ITC", Font.BOLD,
                                              28));
            jLabel1.setAlignmentX((float) 0.5);
            jLabel1.setHorizontalAlignment(SwingConstants.CENTER);
            jLabel1.setHorizontalTextPosition(SwingConstants.CENTER);
            jLabel1.setText("Sélection d\'un catalogue");
            jLabel1.setBounds(new Rectangle(19, 13, 362, 43));
            jButtonVisual.setBounds(new Rectangle(144, 115, 113, 34));
            jButtonVisual.setFont(new java.awt.Font("Times New Roman",
                                                    Font.BOLD,
                                                    15));
            jButtonVisual.setText("Visualiser");
            jButtonVisual.addActionListener(new
                                            ChoixCatalogue_jButtonVisual_actionAdapter(this));
            jLabel2.setFont(new java.awt.Font("Tempus Sans ITC",
                                              Font.BOLD | Font.ITALIC, 16));
            jLabel2.setForeground(new Color(0, 111, 227));
            jLabel2.setHorizontalAlignment(SwingConstants.CENTER);
            jLabel2.setHorizontalTextPosition(SwingConstants.CENTER);
            contentPane.add(jLabel1);
            contentPane.add(jComboBoxCata);
            contentPane.add(jButtonVisual);
            imgCharg = new ImageIcon(ReportingCatalogueV2.class.getResource(
                    "chargBarre.gif"));
     
        }

  5. #5
    Membre confirmé Avatar de krolineeee
    Inscrit en
    Mars 2006
    Messages
    232
    Détails du profil
    Informations forums :
    Inscription : Mars 2006
    Messages : 232
    Par défaut
    Citation Envoyé par philobedo
    Salut
    En fait ce que tu veux faire c'est une sorte de SplashScreen ?
    Si c'est le cas je te conseille ce très bon tut:
    http://gfx.developpez.com/tutoriel/java/swing/splash/

    Heu merci mais ce n'est pas ça qu'il me faut
    Juste une malheureuse fenetre qui dit 'en cours de chargement'

  6. #6
    Membre chevronné Avatar de xixi31
    Inscrit en
    Juin 2005
    Messages
    423
    Détails du profil
    Informations personnelles :
    Âge : 44

    Informations forums :
    Inscription : Juin 2005
    Messages : 423
    Par défaut
    ca aurait été cool de mettre tout ( y compris propriétés ) mais bon

  7. #7
    Membre confirmé Avatar de philobedo
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    80
    Détails du profil
    Informations personnelles :
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Avril 2004
    Messages : 80
    Par défaut
    Ben justement le SplashScreen c'est une malheureuse fenêtre qui dit en cours de chargement...! (enfin avec une image).
    Si tu choisis la piste du SplashScreen, j'ai du code à dispo ...
    ++
    Philobedo

  8. #8
    Membre confirmé Avatar de krolineeee
    Inscrit en
    Mars 2006
    Messages
    232
    Détails du profil
    Informations forums :
    Inscription : Mars 2006
    Messages : 232
    Par défaut
    Citation Envoyé par philobedo
    Ben justement le SplashScreen c'est une malheureuse fenêtre qui dit en cours de chargement...! (enfin avec une image).
    Si tu choisis la piste du SplashScreen, j'ai du code à dispo ...
    ++
    Philobedo

    c'est gentil mais mon but est de réutiliser plusieurs fois cette fenetre de chargement...

  9. #9
    Membre confirmé Avatar de krolineeee
    Inscrit en
    Mars 2006
    Messages
    232
    Détails du profil
    Informations forums :
    Inscription : Mars 2006
    Messages : 232
    Par défaut
    Bon mon probleme est le suivant:
    J'ai un Thread chargé de lancer ma fenêtre de chargement
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    class JChargThread extends Thread {
        JChargement charg;
        public void run() {
            charg = new JChargement();
            charg.setVisible(true);
        }
     
        public void arret() {
            charg.dispose();
        }
     
    }
    Le hic, quand j'utilise ce Thread dans une classe, c'est nikel ma fenêtre s'affiche bien, mais quand je change de fenetre et que je l'utilise, là ma fenetre est vide.... Mystère

    Le cas ou ça fonctionne :
    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
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
     
    public class ChoixCatalogue extends JFrame {
        private JPanel contentPane;
        private Database scherzo = new Database();
        private QueryDataSet queryDataSetCatal = new QueryDataSet();
        private String requete = "select CAT_LIB,CAT_CODE,"
                                 +
                                 " TO_CHAR(TRUNC(CAT_DATE)-41, 'DD/MM/YYYY') AS DATED,"
                                 +
                                 " TO_CHAR(TRUNC(CAT_DATE), 'DD/MM/YYYY') AS DATEF,"
                                 +
                                 " DECODE(SIGN(CAT_DATEF-(TRUNC(SYSDATE)-41)),-1,'Terminé','En cours') AS ETAT"
                                 + " FROM CATA"
                                 + " WHERE CAT_DATEF>=TRUNC(SYSDATE)-75"
                                 + " AND CAT_DATE>=TRUNC(SYSDATE)"
                                 + " AND CAT_DATE<=TRUNC(SYSDATE+41)"
                                 + " ORDER BY CAT_LIB";
        private JComboBox jComboBoxCata = new JComboBox();
        private JLabel jLabel1 = new JLabel();
        private JButton jButtonVisual = new JButton();
        private JPanel jPanel1 = new JPanel();
        private JLabel jLabel2 = new JLabel();
        private GridLayout gridLayout1 = new GridLayout();
        private JLabel jLabel3 = new JLabel();
        private ImageIcon imgCharg;
        private TitledBorder titledBorder1 = new TitledBorder("");
        private String[][] lesCatas;
        private Connection conn;
        //private JChargement jchargmt;
        private JChargThread jct;
     
        public ChoixCatalogue() {
     
            try {
                setDefaultCloseOperation(EXIT_ON_CLOSE);
                jct = new JChargThread();
                jct.start();
                jbInit();
                // Centrer la fenêtre
                Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize();
                Dimension frameSize = this.getSize();
                if (frameSize.height > screenSize.height) {
                    frameSize.height = screenSize.height;
                }
                if (frameSize.width > screenSize.width) {
                    frameSize.width = screenSize.width;
                }
                this.setLocation((screenSize.width - frameSize.width) / 2,
                                 (screenSize.height - frameSize.height) / 2);
                this.setVisible(true);
     
            } catch (Exception exception) {
                exception.printStackTrace();
            }
        }
     
        /**
         * Initialisation du composant.
         *
         * @throws java.lang.Exception
         */
        private void jbInit() throws Exception {
            contentPane = (JPanel) getContentPane();
            contentPane.setLayout(null);
            setSize(new Dimension(400, 300));
            setTitle("Reporting Catalogue V2 - Choix d'un catalogue");
            this.addWindowListener(new ChoixCatalogue_this_windowAdapter(this));
            scherzo.setConnection(new ConnectionDescriptor(
                    "jdbc:oracle:thin:@192.165.1.5:1521:PSZO", "scherzo",
                    "carrefour", false, "oracle.jdbc.driver.OracleDriver"));
            queryDataSetCatal.setQuery(new QueryDescriptor(scherzo, "", null, false,
                    Load.ALL));
            jComboBoxCata.setForeground(Color.black);
            jComboBoxCata.setBounds(new Rectangle(66, 74, 269, 24));
            ResultSet rslt = exec_query(requete);
            createCombo(rslt);
            //jchargmt.dispose();
            jct.arret();
            jLabel1.setFont(new java.awt.Font("Tempus Sans ITC", Font.BOLD,
                                              28));
            jLabel1.setAlignmentX((float) 0.5);
            jLabel1.setHorizontalAlignment(SwingConstants.CENTER);
            jLabel1.setHorizontalTextPosition(SwingConstants.CENTER);
            jLabel1.setText("Sélection d\'un catalogue");
            jLabel1.setBounds(new Rectangle(19, 13, 362, 43));
            jButtonVisual.setBounds(new Rectangle(144, 115, 113, 34));
            jButtonVisual.setFont(new java.awt.Font("Times New Roman",
                                                    Font.BOLD,
                                                    15));
            jButtonVisual.setText("Visualiser");
            jButtonVisual.addActionListener(new
                                            ChoixCatalogue_jButtonVisual_actionAdapter(this));
            jLabel2.setFont(new java.awt.Font("Tempus Sans ITC",
                                              Font.BOLD | Font.ITALIC, 16));
            jLabel2.setForeground(new Color(0, 111, 227));
            jLabel2.setHorizontalAlignment(SwingConstants.CENTER);
            jLabel2.setHorizontalTextPosition(SwingConstants.CENTER);
            contentPane.add(jLabel1);
            contentPane.add(jComboBoxCata);
            contentPane.add(jButtonVisual);
            imgCharg = new ImageIcon(ReportingCatalogueV2.class.getResource(
                    "chargBarre.gif"));
     
        }
    ...
    Et le cas où ça foire :
    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
     
    public void jComboBoxLstCata_itemStateChanged(ItemEvent e) {
            if (e.getStateChange() == e.SELECTED && !selectInterne) {
                //lancement fen de chargement
                JChargThread jct = new JChargThread();
                jct.start();
                //affiche infos
                System.out.println("item:" + e.getItem());
                System.out.println("state:" + e.getStateChange());
                //recup cataCode et cataLib
                String cataLib = (String) jComboBoxLstCata.getSelectedItem();
                int index = cataLib.indexOf(" - ");
                String catCode = cataLib.substring(0, index);
                String catName = cataLib.substring(index + 3, cataLib.length());
                System.out.println("catCode:" + catCode);
                System.out.println("catName:" + catName);
     
                //met à jour les données cataCode et cataLib
                this.cataCode = catCode;
                this.cataName = catName;
                System.out.println("this.cataCode:" + this.cataCode);
                System.out.println("this.cataName:" + this.cataName);
     
                //lance les actions de mise à jours de la fen
                debuteTraitement();
                jct.arret();
            }
        }
    Alors voilà, là je sèche litérallement....
    Merci pour votre aide

  10. #10
    Membre confirmé Avatar de krolineeee
    Inscrit en
    Mars 2006
    Messages
    232
    Détails du profil
    Informations forums :
    Inscription : Mars 2006
    Messages : 232
    Par défaut
    pas d'idée ??

Discussions similaires

  1. problème lors de chargement d'une nouvelle fenetre
    Par Sfaxiano dans le forum Windows Forms
    Réponses: 17
    Dernier message: 24/07/2009, 16h21
  2. [Problème] Fenetre d'aide avec texte formatté
    Par joker.benj dans le forum AWT/Swing
    Réponses: 4
    Dernier message: 14/05/2006, 20h10
  3. [C#]Fenetre de chargement avant Application.run()
    Par 5:35pm dans le forum Windows Forms
    Réponses: 3
    Dernier message: 05/05/2006, 04h02
  4. Réponses: 3
    Dernier message: 08/12/2004, 22h11
  5. Problème lors du chargement
    Par carlito dans le forum Flash
    Réponses: 26
    Dernier message: 06/01/2004, 16h21

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