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 :

Comment convertir cette classe en JinternalFrame ?


Sujet :

AWT/Swing Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Homme Profil pro
    UUA
    Inscrit en
    Mars 2017
    Messages
    82
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : UUA
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2017
    Messages : 82
    Par défaut Comment convertir cette classe en JinternalFrame ?
    Bonjours... j'ai cette classe je veux le convertir en une classe JinternalFrame ...? comment svp ? et merci
    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
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    135
    136
    137
    138
    139
    140
    141
    142
    143
    144
    145
    146
    147
    148
    149
    150
    151
    152
    153
    154
    155
    156
    157
    158
    159
    160
    161
    162
    163
    164
    165
    166
    167
    168
    169
    170
    171
    172
    173
    174
    175
    176
    177
    178
    179
    180
    181
    182
    183
    184
    185
    186
    187
    188
    189
    190
    191
    192
    193
    194
    195
    196
    197
    198
    199
    200
    201
    202
    203
    204
    205
    206
    207
    208
    209
    210
    211
    package application;
     
     
     
    import java.awt.BorderLayout;
    import java.awt.Component;
    import java.awt.Desktop;
    import java.awt.Dimension;
    import java.awt.event.ActionEvent;
    import java.awt.event.ActionListener;
    import java.io.File;
    import java.io.IOException;
     
    import javax.swing.JButton;
    import javax.swing.JFileChooser;
    import javax.swing.JFrame;
    import javax.swing.JProgressBar;
    import javax.swing.JScrollPane;
    import javax.swing.JTree;
    import javax.swing.SwingUtilities;
    import javax.swing.SwingWorker;
    //import javax.swing.UIManager;
    //import javax.swing.UnsupportedLookAndFeelException;
    import javax.swing.tree.DefaultMutableTreeNode;
    import javax.swing.tree.DefaultTreeCellRenderer;
    import javax.swing.tree.DefaultTreeModel;
     
    //import com.sun.java.swing.plaf.nimbus.NimbusLookAndFeel;
     
    public class FileBrowser {
        private JFrame frame;
        private JButton b;    
        private JButton a; 
        private JTree tree;
        private JProgressBar progress;    
     //private int flag ;
     //private int flag1 ;
     
     
        public FileBrowser() {
            frame = new JFrame("Tornado Project Explorer");
            progress = new JProgressBar();
            progress.setIndeterminate(true);
            frame.add(progress, BorderLayout.NORTH);
            progress.setVisible(false);
            tree = new JTree(new DefaultTreeModel(new DefaultMutableTreeNode("Vide")));
            tree.setCellRenderer(new FileTreeCellRenderer());
            b = new JButton("View Files Tree Only :No select for read ");
            a =new JButton("open");
            b.addActionListener(new ActionListener() {
     
                @Override
                public void actionPerformed(ActionEvent arg0) {
                    JFileChooser chooser = new JFileChooser();
                    chooser.setPreferredSize(new Dimension(600, 400));
     
                    chooser.setMultiSelectionEnabled(false);
                    chooser.setFileSelectionMode(JFileChooser.DIRECTORIES_ONLY);
                    int flag = chooser.showDialog(frame, "Choisir répertoire");
                    //chooser.setPreferredSize(100,50);
                    if(flag == JFileChooser.APPROVE_OPTION) {
                        DirectoryWorker worker = new DirectoryWorker(chooser.getSelectedFile());
                       // try {
    					//	Desktop.getDesktop().open(chooser.getSelectedFile());
    					//} catch (IOException e) {
    					//	// TODO Auto-generated catch block
    					//	e.printStackTrace();
    					//}
                        progress.setVisible(true);
                        frame.validate();
                        worker.execute();
     
     
                    }
                }
            });
     
            a.addActionListener(new ActionListener() {
     
     
     
                @Override
                public void actionPerformed(ActionEvent arg0) {
                    JFileChooser chooser = new JFileChooser();
                    chooser.setPreferredSize(new Dimension(600, 400));
                    chooser.setMultiSelectionEnabled(false);
                    chooser.setFileSelectionMode(JFileChooser.FILES_ONLY);
                    int flag = chooser.showDialog(frame, "Open");
                    if(flag == JFileChooser.APPROVE_OPTION) {
                        DirectoryWorker worker = new DirectoryWorker(chooser.getSelectedFile());
                        try {
    						Desktop.getDesktop().open(chooser.getSelectedFile());
    					} catch (IOException e) {
    						// TODO Auto-generated catch block
    						e.printStackTrace();
    					}
                        progress.setVisible(true);
                        frame.validate();
                        worker.execute();
     
     
                    }
                }
            });
     
     
     
     
     
     
     
     
     
     
     
     
     
            frame.setSize(340, 680);
            frame.add(new JScrollPane(tree), BorderLayout.CENTER);
            frame.add(b, BorderLayout.SOUTH);
            frame.add(a, BorderLayout.EAST);
            frame.setLocationRelativeTo(null);
            frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        }
     
        public JFrame getFrame() {
            return frame;
        }
     
     
     
     
        private class FileTreeCellRenderer extends DefaultTreeCellRenderer {
     
            /**
                     * 
                     */
    		private static final long serialVersionUID = 1L;
     
    		/* (non-Javadoc)
             * @see javax.swing.tree.DefaultTreeCellRenderer#getTreeCellRendererComponent(javax.swing.JTree, java.lang.Object, boolean, boolean, boolean, int, boolean)
             */
            @Override
            public Component getTreeCellRendererComponent(JTree arg0, Object arg1, boolean arg2, boolean arg3, boolean arg4, int arg5, boolean arg6) {
                // TODO Module de remplacement de méthode auto-généré
                super.getTreeCellRendererComponent(arg0, arg1, arg2, arg3, arg4, arg5, arg6);
                System.out.println(arg1.getClass());
                if(DefaultMutableTreeNode.class.equals(arg1.getClass())) {
                    DefaultMutableTreeNode node = (DefaultMutableTreeNode) arg1;
                    if(File.class.equals(node.getUserObject().getClass())) {
                        File f = (File) node.getUserObject();                
                        setText(f.getName());
                    }
                }    
                return this;
            }                
        }
     
        private class DirectoryWorker extends SwingWorker<DefaultMutableTreeNode, Void> {
     
            private DefaultMutableTreeNode root=null;
            private File f;
     
     
     
     
            public DirectoryWorker(File f) {
                super();
                this.f = f;            
            }
     
            @Override
            protected DefaultMutableTreeNode doInBackground() throws Exception {
                root = buildFileTree(f);
                return null;
            }
     
            @Override
            protected void done() {
                tree.setModel(new DefaultTreeModel(root));
                progress.setVisible(false);
                frame.validate();
                super.done();
     
            }
     
            private DefaultMutableTreeNode buildFileTree(File f) {
                System.out.println(f.getAbsolutePath());
                DefaultMutableTreeNode node = new DefaultMutableTreeNode(f);
                if(f.isDirectory()) {
                    File[] children = f.listFiles();
                    for (File child : children) {
                        node.add(buildFileTree(child));
                    }
                }
                return node;
            }
     
        }
     
     
        public static void main(String[] args) {
            SwingUtilities.invokeLater(new Runnable() {
                public void run() {
     
                        new FileBrowser().getFrame().setVisible(true);
     
                }
             });
         }
     }

  2. #2
    Modérateur
    Avatar de joel.drigo
    Homme Profil pro
    Ingénieur R&D - Développeur Java
    Inscrit en
    Septembre 2009
    Messages
    12 430
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur R&D - Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2009
    Messages : 12 430
    Billets dans le blog
    2
    Par défaut
    Salut,

    Simplement, rechercher/remplacer JFrame par JinternalFrame. Juste, pour le setDefaultCloseOperation(), le code EXIT_ON_CLOSE n'existant pas, il faut le remonter sur la JFrame qui va contenir le JDesktopPane parent de la JFrame. Il faudra bien sûr ajouter l'instance de JInternalFrame à ce JDesktopPane.

    Pourquoi faire une classe qui crée une instance de JFrame/JInternalFrame, et pas directement une classe qui étend JFrame/JInternalFrame ?
    L'expression "ça marche pas" ne veut rien dire. Indiquez l'erreur, et/ou les comportements attendus et obtenus, et donnez un Exemple Complet Minimal qui permet de reproduire le problème.
    La plupart des réponses à vos questions sont déjà dans les FAQs ou les Tutoriels, ou peut-être dans une autre discussion : utilisez la recherche interne.
    Des questions sur Java : consultez le Forum Java. Des questions sur l'EDI Eclipse ou la plateforme Eclipse RCP : consultez le Forum Eclipse.
    Une question correctement posée et rédigée et vous aurez plus de chances de réponses adaptées et rapides.
    N'oubliez pas de mettre vos extraits de code entre balises CODE (Voir Mode d'emploi de l'éditeur de messages).
    Nouveau sur le forum ? Consultez Les Règles du Club.

  3. #3
    Membre confirmé
    Homme Profil pro
    UUA
    Inscrit en
    Mars 2017
    Messages
    82
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : UUA
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2017
    Messages : 82
    Par défaut
    Tout simplement je veux afficher la classe FileBrowser en tant que InternalFrame ...j'ai crée une classe InternalFrame vide mais je ne peux pas comment integrer la classe
    FileBrowser dans cette dernier...j'ai remplacer Jframe par JinternalFrame et suprimer ''close...'' mais ça marche pas ...voila
    Nom : dddd.PNG
Affichages : 464
Taille : 102,3 KoNom : d1.PNG
Affichages : 338
Taille : 102,0 Ko

  4. #4
    Modérateur
    Avatar de joel.drigo
    Homme Profil pro
    Ingénieur R&D - Développeur Java
    Inscrit en
    Septembre 2009
    Messages
    12 430
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur R&D - Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2009
    Messages : 12 430
    Billets dans le blog
    2
    Par défaut
    Tu peux être plus explicite que "Ça marche pas" ? C'est quoi par exemple, l'erreur indiquée sur la classe FileBrowser ? Et au lieu de mettre des copies d'écrans, me montrer du code, en utilisant la balise code (avec le bouton #).

    Normalement, quand il n'y aura plus d'erreur sur FileBrowser, si tu as bien remplacé toutes les occurences de JFrame par JInternalFrame dans FileBrowser, et corriger le EXIT_ON_CLOSE, tu devrais avoir :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    FileBrowsser fileBrowsser = new FileBrowser();
    jDesktopPanel.add( fileBrowser.getFrame() );
    Bien sûr, ce serait plus simple de faire que FileBrowser étende JInternalFrame et de faire :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    jDesktopPanel.add( new FileBrowser() );
    L'expression "ça marche pas" ne veut rien dire. Indiquez l'erreur, et/ou les comportements attendus et obtenus, et donnez un Exemple Complet Minimal qui permet de reproduire le problème.
    La plupart des réponses à vos questions sont déjà dans les FAQs ou les Tutoriels, ou peut-être dans une autre discussion : utilisez la recherche interne.
    Des questions sur Java : consultez le Forum Java. Des questions sur l'EDI Eclipse ou la plateforme Eclipse RCP : consultez le Forum Eclipse.
    Une question correctement posée et rédigée et vous aurez plus de chances de réponses adaptées et rapides.
    N'oubliez pas de mettre vos extraits de code entre balises CODE (Voir Mode d'emploi de l'éditeur de messages).
    Nouveau sur le forum ? Consultez Les Règles du Club.

  5. #5
    Membre confirmé
    Homme Profil pro
    UUA
    Inscrit en
    Mars 2017
    Messages
    82
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : UUA
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2017
    Messages : 82
    Par défaut
    la classe FileBrowser en tan que JinternalFrame comme vous indiquer...
    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
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    135
    136
    137
    138
    139
    140
    141
    142
    143
    144
    145
    146
    147
    148
    149
    150
    151
    152
    153
    154
    155
    156
    157
    158
    159
    160
    161
    162
    163
    164
    165
    166
    167
    168
    169
    170
    171
    172
    173
    174
    175
    176
    177
    178
    179
    180
    181
    182
    183
    184
    185
    186
    187
    188
    189
    190
    191
    192
    193
    194
    195
    196
    197
    198
    199
    200
    201
    202
    203
    204
    205
    206
    207
    208
    209
    210
    211
    212
    213
    214
    215
    216
    package jdesktoppane;
     
     
     
    import java.awt.BorderLayout;
    import java.awt.Component;
    import java.awt.Desktop;
    import java.awt.Dimension;
    import java.awt.event.ActionEvent;
    import java.awt.event.ActionListener;
    import java.io.File;
    import java.io.IOException;
     
    import javax.swing.JButton;
    import javax.swing.JFileChooser;
    import javax.swing.JFrame;
    import javax.swing.JInternalFrame;
    import javax.swing.JProgressBar;
    import javax.swing.JScrollPane;
    import javax.swing.JTree;
    import javax.swing.SwingUtilities;
    import javax.swing.SwingWorker;
    //import javax.swing.UIManager;
    //import javax.swing.UnsupportedLookAndFeelException;
    import javax.swing.tree.DefaultMutableTreeNode;
    import javax.swing.tree.DefaultTreeCellRenderer;
    import javax.swing.tree.DefaultTreeModel;
     
    //import com.sun.java.swing.plaf.nimbus.NimbusLookAndFeel;
     
     public class FileBrowser  extends javax.swing.JInternalFrame {
     
     public InternalFrame() {
            initComponents();
        }
        private JInternalFrame frame;
        private JButton b;    
        private JButton a; 
        private JTree tree;
        private JProgressBar progress;    
     //private int flag ;
     //private int flag1 ;
     
     
        public FileBrowser() {
            frame = new JInternalFrame("Tornado Project Explorer");
            progress = new JProgressBar();
            progress.setIndeterminate(true);
            frame.add(progress, BorderLayout.NORTH);
            progress.setVisible(false);
            tree = new JTree(new DefaultTreeModel(new DefaultMutableTreeNode("Vide")));
            tree.setCellRenderer(new FileTreeCellRenderer());
            b = new JButton("View Files Tree Only :No select for read ");
            a =new JButton("open");
            b.addActionListener(new ActionListener() {
     
                @Override
                public void actionPerformed(ActionEvent arg0) {
                    JFileChooser chooser = new JFileChooser();
                    chooser.setPreferredSize(new Dimension(600, 400));
     
                    chooser.setMultiSelectionEnabled(false);
                    chooser.setFileSelectionMode(JFileChooser.DIRECTORIES_ONLY);
                    int flag = chooser.showDialog(frame, "Choisir répertoire");
                    //chooser.setPreferredSize(100,50);
                    if(flag == JFileChooser.APPROVE_OPTION) {
                        DirectoryWorker worker = new DirectoryWorker(chooser.getSelectedFile());
                       // try {
    					//	Desktop.getDesktop().open(chooser.getSelectedFile());
    					//} catch (IOException e) {
    					//	// TODO Auto-generated catch block
    					//	e.printStackTrace();
    					//}
                        progress.setVisible(true);
                        frame.validate();
                        worker.execute();
     
     
                    }
                }
            });
     
            a.addActionListener(new ActionListener() {
     
     
     
                @Override
                public void actionPerformed(ActionEvent arg0) {
                    JFileChooser chooser = new JFileChooser();
                    chooser.setPreferredSize(new Dimension(600, 400));
                    chooser.setMultiSelectionEnabled(false);
                    chooser.setFileSelectionMode(JFileChooser.FILES_ONLY);
                    int flag = chooser.showDialog(frame, "Open");
                    if(flag == JFileChooser.APPROVE_OPTION) {
                        DirectoryWorker worker = new DirectoryWorker(chooser.getSelectedFile());
                        try {
    						Desktop.getDesktop().open(chooser.getSelectedFile());
    					} catch (IOException e) {
    						// TODO Auto-generated catch block
    						e.printStackTrace();
    					}
                        progress.setVisible(true);
                        frame.validate();
                        worker.execute();
     
     
                    }
                }
            });
     
     
     
     
     
     
     
     
     
     
     
     
     
            frame.setSize(340, 680);
            frame.add(new JScrollPane(tree), BorderLayout.CENTER);
            frame.add(b, BorderLayout.SOUTH);
            frame.add(a, BorderLayout.EAST);
            frame.setLocationRelativeTo(null);
           // frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        }
     
        public JInternalFrame getFrame() {
            return frame;
        }
     
     
     
     
        private class FileTreeCellRenderer extends DefaultTreeCellRenderer {
     
            /**
                     * 
                     */
    		private static final long serialVersionUID = 1L;
     
    		/* (non-Javadoc)
             * @see javax.swing.tree.DefaultTreeCellRenderer#getTreeCellRendererComponent(javax.swing.JTree, java.lang.Object, boolean, boolean, boolean, int, boolean)
             */
            @Override
            public Component getTreeCellRendererComponent(JTree arg0, Object arg1, boolean arg2, boolean arg3, boolean arg4, int arg5, boolean arg6) {
                // TODO Module de remplacement de méthode auto-généré
                super.getTreeCellRendererComponent(arg0, arg1, arg2, arg3, arg4, arg5, arg6);
                System.out.println(arg1.getClass());
                if(DefaultMutableTreeNode.class.equals(arg1.getClass())) {
                    DefaultMutableTreeNode node = (DefaultMutableTreeNode) arg1;
                    if(File.class.equals(node.getUserObject().getClass())) {
                        File f = (File) node.getUserObject();                
                        setText(f.getName());
                    }
                }    
                return this;
            }                
        }
     
        private class DirectoryWorker extends SwingWorker<DefaultMutableTreeNode, Void> {
     
            private DefaultMutableTreeNode root=null;
            private File f;
     
     
     
     
            public DirectoryWorker(File f) {
                super();
                this.f = f;            
            }
     
            @Override
            protected DefaultMutableTreeNode doInBackground() throws Exception {
                root = buildFileTree(f);
                return null;
            }
     
            @Override
            protected void done() {
                tree.setModel(new DefaultTreeModel(root));
                progress.setVisible(false);
                frame.validate();
                super.done();
     
            }
     
            private DefaultMutableTreeNode buildFileTree(File f) {
                System.out.println(f.getAbsolutePath());
                DefaultMutableTreeNode node = new DefaultMutableTreeNode(f);
                if(f.isDirectory()) {
                    File[] children = f.listFiles();
                    for (File child : children) {
                        node.add(buildFileTree(child));
                    }
                }
                return node;
            }
     
        }
     
     
        public static void main(String[] args) {
            SwingUtilities.invokeLater(new Runnable() {
                public void run() {
     
                        new FileBrowser().getFrame().setVisible(true);
     
                }
             });
         }
     }

    evennement sur le bouton click pour afficher la classe en internalFrame
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {                                         
            // TODO add your handling code here:
            FileBrowser If;
            If = new FileBrowser  ();
    jDesktopPane1.add(If);
    If.show();
    je suis débutant en java dsl

  6. #6
    Membre confirmé
    Homme Profil pro
    UUA
    Inscrit en
    Mars 2017
    Messages
    82
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : UUA
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2017
    Messages : 82
    Par défaut
    Grand Merci ...hh j'ai oubliée frame.setVisible(true);

Discussions similaires

  1. comment exprimer cette règle au niveau de diagramme de classe ?
    Par spring.time dans le forum Diagrammes de Classes
    Réponses: 4
    Dernier message: 06/01/2014, 10h21
  2. [CS5] Comment utiliser cette classe ?
    Par Stalk3R dans le forum Flash
    Réponses: 0
    Dernier message: 30/12/2010, 14h02
  3. Réponses: 5
    Dernier message: 18/03/2010, 00h20
  4. JavaDoc : cette classe est elle bien commentée ?
    Par jmnicolas dans le forum Langage
    Réponses: 4
    Dernier message: 04/09/2008, 11h36
  5. [débutant][JSci][Matrix]comment utiliser cette classe
    Par Clark dans le forum API standards et tierces
    Réponses: 2
    Dernier message: 10/05/2005, 10h40

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