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 :

Application avec interface graphique en java


Sujet :

AWT/Swing Java

  1. #1
    Futur Membre du Club
    Homme Profil pro
    Ingénieur après-vente
    Inscrit en
    Novembre 2014
    Messages
    367
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Ingénieur après-vente

    Informations forums :
    Inscription : Novembre 2014
    Messages : 367
    Points : 9
    Points
    9
    Par défaut Application avec interface graphique en java
    Bonjour,

    Je souhaiterais créer une application java très simple et basique avec intelliJ qui me permettrait de créer une liste d'éléments et de la gérer (en supprimant et ajoutant des éléments). Le tout avec une interface graphique contenant trois choses. Un bouton ajouter, une fenêtre contenant la liste de mes éléments et un bouton supprimer. Pour ce qui concerne l’interface graphique je compte utiliser GUI Form. Par contre je ne sais pas encore comment “stocker” ma liste d’éléments. Est-ce que vous me conseillez d’utiliser une LinkedList ?

    Merci pour vos conseils.

  2. #2
    Membre habitué
    Profil pro
    Inscrit en
    Novembre 2005
    Messages
    156
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2005
    Messages : 156
    Points : 165
    Points
    165
    Par défaut
    Je ne connais pas GUI Form mais si ça se comporte comme Swing tu n'as pas besoin de stocker ta liste d'éléments si ces éléments sont relativement simples. Normalement ton composant graphique "Liste" doit avoir un modèle derrière. Au lieu de faire un modèle de String, tu fais un modèle qui contient tes éléments (normalement tu dois avoir une implémentation de base qui prend une collection typée) et tu définit un renderer qui affichera ce que tu veux comme texte dans la liste. Ainsi lorsque tu voudra récupérer tes éléments tu auras juste à les lire depuis le modèle de ton composant "Liste".

    Cependant si tu tenais absolument à te taper la synchro entre le composant et ta propre collection, une LinkedList pourrait coller mais n'apporte pas grand chose. Tu gagneras en temps de suppression et d'insertion et perdra en temps de parcours. Sauf que dans une GUI, comme il n'y a aucune chance que ton utilisateur puisse insérer manuellement 100 000 éléments à la seconde, cette optimisation ne se verra jamais. Idem pour le temps de parcours la dégradation ne se verra jamais non plus. Donc tu peux prendre n'importe quelle implémentation de List ça ne changera rien dans l'absolu.

  3. #3
    Futur Membre du Club
    Homme Profil pro
    Ingénieur après-vente
    Inscrit en
    Novembre 2014
    Messages
    367
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Ingénieur après-vente

    Informations forums :
    Inscription : Novembre 2014
    Messages : 367
    Points : 9
    Points
    9
    Par défaut
    Merci beaucoup pour la réponse. Je vais donc me concentrer sur le GUI. Voici un exemple de ce que je souhaiterais réussir à obtenir comme résultat :



    Est-ce que vous auriez un tutoriel ou une vidéo-tutorielle à me conseiller qui me guiderait étape par étape pour obtenir le résultat ci-dessus en utilisant Intellij IDEA ?

    Merci pour votre aide.

  4. #4
    Futur Membre du Club
    Homme Profil pro
    Ingénieur après-vente
    Inscrit en
    Novembre 2014
    Messages
    367
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Ingénieur après-vente

    Informations forums :
    Inscription : Novembre 2014
    Messages : 367
    Points : 9
    Points
    9
    Par défaut
    Pour la partie GUI j'ai commencé par créer un champ texte "descriptionTache" dans lequel j'entre le nom de la tâche à effectuer, ensuite un bouton "ajouterTache" qui est censé faire entrer le nom de la tâche dans la liste et enfin la JList qui va contenir les tâches que je lui ajoute :

    Nom : gui.JPG
Affichages : 3342
Taille : 187,2 Ko


    Maintenant, voici mon code. Je ne sais pas par où commencer pour faire en sorte que le clic sur le bouton "ajouterTache" puisse provoquer l'insertion dans la JList du contenu du champ texte "descriptionTache" :


    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 com.codebind;
     
    import javax.swing.*;
    import java.awt.event.ActionEvent;
    import java.awt.event.ActionListener;
    import java.awt.event.ContainerAdapter;
    import java.awt.event.ContainerEvent;
     
    /**
     * Created by steg on 15.01.2017.
     */
    public class App {
        private JButton ajouterTache;
        private JPanel panelMain;
        private JList list1;
        private JTextArea descriptionTache;
     
        public App() {
            ajouterTache.addActionListener(new ActionListener() {
                @Override
                public void actionPerformed(ActionEvent e) {
                    JOptionPane.showMessageDialog(null,"Tache ajoutée");
     
                }
            });
            list1.addContainerListener(new ContainerAdapter() {
                @Override
                public void componentAdded(ContainerEvent e) {
                    super.componentAdded(e);
                }
            });
        }
     
        public static void main(String[] args) {
            JFrame frame = new JFrame("App");
            frame.setContentPane(new App().panelMain);
            frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
            frame.pack();
            frame.setVisible(true);
        }
    }

  5. #5
    Futur Membre du Club
    Homme Profil pro
    Ingénieur après-vente
    Inscrit en
    Novembre 2014
    Messages
    367
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Ingénieur après-vente

    Informations forums :
    Inscription : Novembre 2014
    Messages : 367
    Points : 9
    Points
    9
    Par défaut
    Donc plus personne ne peut m'aider c'est juste ? Ca se termine ici si je comprends bien. Il n'est même pas possible d'avoir juste une piste ou un indice de ce que je dois faire ?

  6. #6
    Membre habitué
    Profil pro
    Inscrit en
    Novembre 2005
    Messages
    156
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2005
    Messages : 156
    Points : 165
    Points
    165
    Par défaut
    Désolé je n'ai pas eu le temps de revenir sur ce fil depuis ce week-end.

    [Edit : je n'avais pas lu le code que tu as posté et je me suis rendu compte que ma réponse ne correspondait pas à ton besoin, donc je change].

    En fait tu n'es pas loin du tout de la solution:

    Regarde la JavaDoc de JList. Elle t'explique que si tu ne fournis pas de modèle elle en créera un par défaut pour toi mais il sera read-only. Elle t'indique aussi que si tu veux pouvoir faire des modifs dans la liste, Swing met à ta disposition la classe DefaultListModel.

    Il te faut donc juste modifier ta création de liste comme ça:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    DefaultListModel<String> model = new DefaultListModel();
    JList<String> list = new JList<>(model);
    Et dans l'action du bouton tu fais ça:
    [CODE]model.addElement(myTextBox.getText()); //Le textbox qui contient le nom de la tâche.[CODE]

    A la fin quand tu veux récupérer le contenu de ta liste tu peux faire
    En passant, tu n'as pas besoin de ce bout de code:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
            list1.addContainerListener(new ContainerAdapter() {
                @Override
                public void componentAdded(ContainerEvent e) {
                    super.componentAdded(e);
                }
            });

  7. #7
    Membre expert

    Homme Profil pro
    Consultant informatique
    Inscrit en
    Janvier 2004
    Messages
    2 301
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2004
    Messages : 2 301
    Points : 3 675
    Points
    3 675
    Par défaut
    Citation Envoyé par wallace27 Voir le message
    Est-ce que vous me conseillez d’utiliser une LinkedList ?
    De nos jours, on ne conseille plus jamais à personne d'utiliser LinkedList. ArrayList offre de bien meilleures perfs, et (étonnement) quel que soit le cas d'utilisation. Cela vient du fait que les tableaux sont des structures de données cache-friendly, car contigües. Cf la préz d'un cador à devoxx:
    "Le plug gros problème des citations trouvées sur internet, c'est qu'on ne peut jamais garantir leur authenticité"

    Confucius, 448 av. J-C

  8. #8
    Futur Membre du Club
    Homme Profil pro
    Ingénieur après-vente
    Inscrit en
    Novembre 2014
    Messages
    367
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Ingénieur après-vente

    Informations forums :
    Inscription : Novembre 2014
    Messages : 367
    Points : 9
    Points
    9
    Par défaut
    Merci beaucoup pour ton aide. Est-ce que tu me conseilles d'utiliser une JList ? Car je ne sais pas trop quoi choisir d'autre ci-dessous :


    Nom : jlist.JPG
Affichages : 2926
Taille : 34,0 Ko

  9. #9
    Membre habitué
    Profil pro
    Inscrit en
    Novembre 2005
    Messages
    156
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2005
    Messages : 156
    Points : 165
    Points
    165
    Par défaut
    La JList semble un composant graphique adapté si tu veux afficher une liste d'éléments oui. Il faut que tu décorrèle le composant graphique et la structure de données. Et dans ton cas la structure de données (un Vector dans le cas du DefaultListModel) ira très bien.

    Mais si tu veux stocker plusieurs infos (genre un nom de tâche et une description, voir un id ce serait pas mal) il te faudra un objet complexe.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    class Task {
      private int id;
     
      private String name;
     
      private String description;
     
      //+ Les getters et setters qui vont bien 
    }
    Ton modèle deviendra un DefaultListModel<Task> et il faudra un renderer pour que la liste affiche le nom de la tâche (list.setCellRenderer(cellRenderer); )

    L'avantage de cette construction c'est que tes donnés sont à un seul endroit et que tu n'as pas besoin de faire de synchro entre un éventuelle ArrayList et le composant JList.

  10. #10
    Futur Membre du Club
    Homme Profil pro
    Ingénieur après-vente
    Inscrit en
    Novembre 2014
    Messages
    367
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Ingénieur après-vente

    Informations forums :
    Inscription : Novembre 2014
    Messages : 367
    Points : 9
    Points
    9
    Par défaut
    Donc si je veux créer ce "DefaultListModel" à partir de ma JList que j'ai appelée lstTaskList je dois procéder comme ci-dessous c'est juste ? Ou je fais fausse route ?


    Nom : Capture d’écran 2017-01-17 à 11.46.34.jpg
Affichages : 3219
Taille : 105,2 Ko

    Et ensuite ici je vais dans component listener ?


    Nom : Capture d’écran 2017-01-17 à 11.51.41.jpg
Affichages : 2824
Taille : 57,8 Ko

  11. #11
    Membre habitué
    Profil pro
    Inscrit en
    Novembre 2005
    Messages
    156
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2005
    Messages : 156
    Points : 165
    Points
    165
    Par défaut
    Je n'en ai pas la moindre idée, je ne connais pas ton EDI. Cependant pour moi ce n'est pas du coté des ComponentListeners qu'il faut chercher mais du coté des paramètres du constructeur de la JList.
    Je te conseillerai plutôt de passer par la vue code, d'aller à l'endroit où ta liste est instanciée (je ne vois pas ce bout de code dans ce que tu as copié mais logiquement ça devrait être dans le constructeur ou une méthode appelée à la construction de ta fenêtre) et d'instancier le modèle la main pour pouvoir le passer au constructeur de la JList (comme dans le code que j'ai édité dans une de mes réponses précédentes).

  12. #12
    Futur Membre du Club
    Homme Profil pro
    Ingénieur après-vente
    Inscrit en
    Novembre 2014
    Messages
    367
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Ingénieur après-vente

    Informations forums :
    Inscription : Novembre 2014
    Messages : 367
    Points : 9
    Points
    9
    Par défaut
    A quel endroit de ce code :

    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
    import javax.swing.*;
    import java.awt.event.ActionEvent;
    import java.awt.event.ActionListener;
     
    /**
     * Created by x on 13.01.17.
     */
    public class projet extends JFrame{
        private JPanel panel1;
        private JList lstTaskList;
        private JButton btnAjouter;
        private JTextArea txtSaisie;
     
        public projet() {
            btnAjouter.addActionListener(new ActionListener() {
                @Override
                public void actionPerformed(ActionEvent e) {
     
                }
            });
            btnAjouter.addActionListener(new ActionListener() {
                @Override
                public void actionPerformed(ActionEvent e) {
     
                }
            });
        }
    }
    est-ce que je peux mettre le code ci-dessous ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    DefaultListModel<String> model = new DefaultListModel();
    JList<String> list = new JList<>(model);

  13. #13
    Futur Membre du Club
    Homme Profil pro
    Ingénieur après-vente
    Inscrit en
    Novembre 2014
    Messages
    367
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Ingénieur après-vente

    Informations forums :
    Inscription : Novembre 2014
    Messages : 367
    Points : 9
    Points
    9
    Par défaut
    D'abord une question plus basique. Comment je fais pour faire apparaître champ de saisie et faire apparaître le bouton lorsque j'exécute mon code :


    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
    import javax.swing.JFrame;
    import javax.swing.*;
    import java.awt.event.ActionEvent;
    import java.awt.event.ActionListener;
     
    /**
     * Created by x on 17.01.17.
     */
    public class GUIJava extends JFrame {
        private JList lstTaches;
        private JButton btnAjouter;
        private JTextField champTxt;
     
     
        public GUIJava() {
            btnAjouter.addActionListener(new ActionListener() {
                @Override
                public void actionPerformed(ActionEvent e) {
     
                }
            });
        }
     
        public static void main(String[] args) {
            GUIJava essai = new GUIJava();
            essai.setTitle("gestionnaire de tâches");
            essai.setSize(400, 100);
            essai.setLocationRelativeTo(null);
            essai.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
            essai.setVisible(true);
            essai.isAlwaysOnTop();
     
     
        }
    }
    Nom : Capture d’écran 2017-01-17 à 13.51.54.jpg
Affichages : 3005
Taille : 128,5 Ko


    Qu'est-ce qui manque à mon code pour ne serait-ce que faire apparaître les bouton et le champ de saisie et en passant je regrette de toutes les forces le jour maudit de merde où j'ai décidé de faire de la programmation parce que je suis en train de gâcher ma vie sur des chiures de mouches.

  14. #14
    Membre habitué
    Profil pro
    Inscrit en
    Novembre 2005
    Messages
    156
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2005
    Messages : 156
    Points : 165
    Points
    165
    Par défaut
    Je ne sais pas trop si ça vaut le coup de te répondre parce que tu risques de mal prendre ma prochaine remarque et de te vexer, mais ça pourra toujours servir pour d'autres personnes: la programmation c'est un métier. Les tentatives pour apprendre à Mr tout le monde à programmer juste en cliquant sur 2 bouton c'est soit un rêve, soit réservé à un cas super spécialisé. Ca suppose d'acquérir un certain nombre de connaissances et ça ne se fait pas en 5 min. C'est généralement un investissement important.

    Pour répondre à ta première question:

    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
    import javax.swing.*;
    import java.awt.event.ActionEvent;
    import java.awt.event.ActionListener;
     
    /**
     * Created by x on 13.01.17.
     */
    public class projet extends JFrame{
        private JPanel panel1;
        private JList lstTaskList;
        private JButton btnAjouter;
        private JTextArea txtSaisie;
     
        private DefaultListModel<String> model;
     
        public projet() {
            model = new DefaultListModel();
            lstTaskList = new JList<>(model);
     
            btnAjouter.addActionListener(new ActionListener() {
                @Override
                public void actionPerformed(ActionEvent e) {
     
                }
            });
        }
    }
    Pour répondre à ta deuxième question: il manque toutes les initialisation dans ton code. L'EDI n'à pas fait de miracle (d'ailleurs je dirais même qu'il à fait de la m... par rapport à un WindowsBuilder sous Eclipse ou alors c'est que tu ne l'as pas utilisé correctement). Pour créer un objet (et donc un composant graphique) il faut utiliser le mot clé new. Tu n'as rien créé, donc il n'y a rien qui s'affiche, logique.

    Je te conseille de commencer par les bases, cad peut-être un tuto sur la programmation Java et un tuto sur la programmation graphique avec Swing.

  15. #15
    Futur Membre du Club
    Homme Profil pro
    Ingénieur après-vente
    Inscrit en
    Novembre 2014
    Messages
    367
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Ingénieur après-vente

    Informations forums :
    Inscription : Novembre 2014
    Messages : 367
    Points : 9
    Points
    9
    Par défaut
    j'ai fait new --> GUI Form

  16. #16
    Futur Membre du Club
    Homme Profil pro
    Ingénieur après-vente
    Inscrit en
    Novembre 2014
    Messages
    367
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Ingénieur après-vente

    Informations forums :
    Inscription : Novembre 2014
    Messages : 367
    Points : 9
    Points
    9
    Par défaut
    Voilà avec ce code :

    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
    import javax.swing.*;
     
    /**
     * Created by x on 17.01.17.
     */
    public class guiForm {
     
     
        private JList list1;
        private JPanel panel1;
        private JButton button1;
        private JTextArea textArea1;
     
        public static void main(String[] args) {
            JFrame frame = new JFrame("guiForm");
            frame.setContentPane(new guiForm().panel1);
            frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
            frame.pack();
            frame.setVisible(true);
        }
    }
    J'arrive à faire apparaître ceci :


    Nom : Capture d’écran 2017-01-17 à 14.43.28.jpg
Affichages : 2648
Taille : 18,8 Ko

  17. #17
    Futur Membre du Club
    Homme Profil pro
    Ingénieur après-vente
    Inscrit en
    Novembre 2014
    Messages
    367
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Ingénieur après-vente

    Informations forums :
    Inscription : Novembre 2014
    Messages : 367
    Points : 9
    Points
    9
    Par défaut
    Maintenant si je parviens à ajouter dans la JListl le texte qui est dans le grand champ TextArea que je crois que je crie directement au miracle. Parce que je ça fait une semaine que je me prends la tête avec ça :


    Nom : Capture d’écran 2017-01-17 à 14.49.24.jpg
Affichages : 2656
Taille : 42,6 Ko

  18. #18
    Membre habitué
    Profil pro
    Inscrit en
    Novembre 2005
    Messages
    156
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2005
    Messages : 156
    Points : 165
    Points
    165
    Par défaut
    Les captures d'écran que tu nous montre elle viennent de l'EDI ou c'est quand tu exécutes que tu vois ça? Parce que pour moi ça ne colle pas. Il n'y a rien dans ton code (tu ne crées que la frame) et tu sembles utiliser des classes Swing (cf les imports). Donc soit tu ne montres pas tout le code, soit c'est l'EDI qui te montre une pure vue de l'esprit...

    Quoi qu'il en soit voilà le code qui fait ce que tu veux: C'est bourrin (je n'ai pas retouché le code généré par WindowBuilder au début) mais ça te donnera un exemple qui 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
    import java.awt.BorderLayout;
    import java.awt.EventQueue;
    import java.awt.event.ActionEvent;
    import java.awt.event.ActionListener;
     
    import javax.swing.DefaultListModel;
    import javax.swing.JButton;
    import javax.swing.JFrame;
    import javax.swing.JList;
    import javax.swing.JPanel;
    import javax.swing.JSplitPane;
    import javax.swing.JTextField;
    import javax.swing.border.EmptyBorder;
     
    public class TodoList extends JFrame {
     
        private JPanel contentPane;
        private JTextField textField;
        private JButton btnAdd;
        private JPanel rightPane;
        private JList list;
        private DefaultListModel<String> model;
     
        /**
         * Launch the application.
         */
        public static void main(String[] args) {
            EventQueue.invokeLater(new Runnable() {
     
                public void run() {
                    try {
                        TodoList frame = new TodoList();
                        frame.setVisible(true);
                    }
                    catch (Exception e) {
                        e.printStackTrace();
                    }
                }
            });
        }
     
        /**
         * Create the frame.
         */
        public TodoList() {
            setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
            setBounds(100, 100, 450, 300);
            contentPane = new JPanel();
            contentPane.setBorder(new EmptyBorder(5, 5, 5, 5));
            setContentPane(contentPane);
            contentPane.setLayout(new BorderLayout(0, 0));
     
            JSplitPane splitPane = new JSplitPane();
            contentPane.add(splitPane);
     
            JPanel leftPane = new JPanel();
            splitPane.setLeftComponent(leftPane);
     
            textField = new JTextField();
            leftPane.add(textField);
            textField.setColumns(10);
     
            rightPane = new JPanel();
            splitPane.setRightComponent(rightPane);
     
            model = new DefaultListModel<>();
            rightPane.setLayout(new BorderLayout(0, 0));
            list = new JList(model);
            rightPane.add(list);
     
            btnAdd = new JButton("Add");
            leftPane.add(btnAdd);
     
            btnAdd.addActionListener(new ActionListener() {
     
                @Override
                public void actionPerformed(ActionEvent e) {
                    if (!textField.getText().isEmpty()) {
                        model.addElement(textField.getText());
                        textField.setText("");
                    }
                }
            });
        }
     
    }

  19. #19
    Futur Membre du Club
    Homme Profil pro
    Ingénieur après-vente
    Inscrit en
    Novembre 2014
    Messages
    367
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Ingénieur après-vente

    Informations forums :
    Inscription : Novembre 2014
    Messages : 367
    Points : 9
    Points
    9
    Par défaut
    C'est quand j'exécute que je vois ce que je vous mets en capture d'écran.

  20. #20
    Futur Membre du Club
    Homme Profil pro
    Ingénieur après-vente
    Inscrit en
    Novembre 2014
    Messages
    367
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Ingénieur après-vente

    Informations forums :
    Inscription : Novembre 2014
    Messages : 367
    Points : 9
    Points
    9
    Par défaut
    Je ne sais pas comment te remercier. T'es un grand.

Discussions similaires

  1. Application réseau avec interface graphique
    Par Invité dans le forum Ada
    Réponses: 7
    Dernier message: 23/09/2013, 21h48
  2. conception d'une application avec interface graphique en c
    Par AngeAbstraction dans le forum Débuter
    Réponses: 6
    Dernier message: 28/09/2012, 16h36
  3. Réponses: 8
    Dernier message: 31/05/2011, 17h06
  4. Bienvenue sur le forum Interfaces Graphiques en Java - règles à respecter par tous
    Par christopheJ dans le forum Interfaces Graphiques en Java
    Réponses: 1
    Dernier message: 31/05/2009, 16h50
  5. Application multiplateforme avec interface graphique
    Par TNorth dans le forum Choisir un environnement de développement
    Réponses: 2
    Dernier message: 31/01/2004, 19h55

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