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 :

ICreation d'une interface


Sujet :

AWT/Swing Java

  1. #1
    Membre confirmé Avatar de LinuxUser
    Inscrit en
    Avril 2007
    Messages
    857
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 857
    Points : 616
    Points
    616
    Par défaut ICreation d'une interface
    Bonjour,

    en fait je débute dans la création d'interface avec SWING.
    J'ai appris grâce aux tutos à créer des boutons, des barres de menu, des écouteurs sur les boutons.

    Cependant je ne maitrise pas du tout la présentation.
    Je m'explique:
    en fait je voudrais séparer ma fenêtre en 3 parties comme dans l'API Java et pouvoir mettre des boutons dans certaines des parties.
    Mais je ne vois pas du tout comment faire pour créer ces 3 parties et encore moins comment les distinguer les unes des autres.

    Si quelqu'un pouvait me guider un peu ça serait sympa.

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

    Informations forums :
    Inscription : Août 2004
    Messages : 8 765
    Points : 12 977
    Points
    12 977
    Hey, this is mine. That's mine. All this is mine. I'm claiming all this as mine. Except that bit. I don't want that bit. But all the rest of this is mine. Hey, this has been a really good day. I've eaten five times, I've slept six times, and I've made a lot of things mine. Tomorrow, I'm gonna see if I can't have sex with something.

  3. #3
    Expert éminent sénior Avatar de Uther
    Homme Profil pro
    Tourneur Fraiseur
    Inscrit en
    Avril 2002
    Messages
    4 562
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pyrénées Orientales (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Tourneur Fraiseur

    Informations forums :
    Inscription : Avril 2002
    Messages : 4 562
    Points : 15 493
    Points
    15 493
    Par défaut
    L'objet qui divise un composant en 2 éléments redimensionnables comme les frames d'une page HTML est le JSplitPane. Si tu veux avoir une présentation comme dans le Javadoc, il te faut donc quelquechose du genre:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    JPanel hautGauche = new JPanel();
    JPanel basGauche = new JPanel();
    JPanel droite = new JPanel();
     
    JSplitPane gauche = new JSplitPane(JSplitPane.VERTICAL_SPLIT,hautGauche,basGauche);
    JSplitPane general = new JSplitPane(JSplitPane.HORIZONTAL_SPLIT,gauche ,droite);
     
    getContentPane().add(general)//Si tu travaille dans une JFrame ou JApplet
    Tu as ainsi trois JPanel dans lesquel mettre tes éléments. Renseigne toi sur les layouts(cf le lien donné par sinok) si tu n'arrives pas à maitriser précisément le positionnement de tes éléments dans le panel.

  4. #4
    Membre confirmé Avatar de LinuxUser
    Inscrit en
    Avril 2007
    Messages
    857
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 857
    Points : 616
    Points
    616
    Par défaut
    Merci à tous pour vos réponses, je vais plancher sur tout ça.

  5. #5
    Membre confirmé Avatar de LinuxUser
    Inscrit en
    Avril 2007
    Messages
    857
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 857
    Points : 616
    Points
    616
    Par défaut
    Citation Envoyé par Uther Voir le message
    L'objet qui divise un composant en 2 éléments redimensionnables comme les frames d'une page HTML est le JSplitPane. Si tu veux avoir une présentation comme dans le Javadoc, il te faut donc quelquechose du genre:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    JPanel hautGauche = new JPanel();
    JPanel basGauche = new JPanel();
    JPanel droite = new JPanel();
     
    JSplitPane gauche = new JSplitPane(JSplitPane.VERTICAL_SPLIT,hautGauche,basGauche);
    JSplitPane general = new JSplitPane(JSplitPane.HORIZONTAL_SPLIT,gauche ,droite);
     
    getContentPane().add(general)//Si tu travaille dans une JFrame ou JApplet
    Tu as ainsi trois JPanel dans lesquel mettre tes éléments. Renseigne toi sur les layouts(cf le lien donné par sinok) si tu n'arrives pas à maitriser précisément le positionnement de tes éléments dans le panel.
    Merci beaucoup pour ton aide,
    mais je voulais savoir comment est ce que je pourrais rendre une partie en ScrollBar ?

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

    Informations forums :
    Inscription : Août 2004
    Messages : 8 765
    Points : 12 977
    Points
    12 977
    Par défaut
    Utilises un JScrollPane
    Hey, this is mine. That's mine. All this is mine. I'm claiming all this as mine. Except that bit. I don't want that bit. But all the rest of this is mine. Hey, this has been a really good day. I've eaten five times, I've slept six times, and I've made a lot of things mine. Tomorrow, I'm gonna see if I can't have sex with something.

  7. #7
    Membre confirmé Avatar de LinuxUser
    Inscrit en
    Avril 2007
    Messages
    857
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 857
    Points : 616
    Points
    616
    Par défaut
    Citation Envoyé par sinok Voir le message
    Utilises un JScrollPane
    Oui j'avais pensé à ça, donc je crée un JScrollPane

    En reprenant le code de Uther
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    JPanel hautGauche = new JPanel();
    JPanel basGauche = new JPanel();
    JPanel droite = new JPanel();
    JScrollPane sc = new JScrollPane();
     
    JSplitPane gauche = new JSplitPane(JSplitPane.VERTICAL_SPLIT,hautGauche,basGauche);
    JSplitPane general = new JSplitPane(JSplitPane.HORIZONTAL_SPLIT,gauche ,droite);
     
    getContentPane().add(general)
    basGauche.add(sc);
    MAis ça ne marche pas je ne vois pas de ScrollBar sur ma partie bas gauche .

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

    Informations forums :
    Inscription : Août 2004
    Messages : 8 765
    Points : 12 977
    Points
    12 977
    Par défaut
    Bah il faut bien que tu mettes quelquechose dans ton JScrollPane, ce qui n'est pas vraiment le cas à l'heure actuelle

    Dans ton cas il faut inclure basGauche dans le JScrollPnae et ajouter le JScrollPane à ton JSplitPane


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    JPanel hautGauche = new JPanel();
    JPanel basGauche = new JPanel();
    JPanel droite = new JPanel();
    JScrollPane sc = new JScrollPane(basGauche);
     
    JSplitPane gauche = new JSplitPane(JSplitPane.VERTICAL_SPLIT,hautGauche,sc);
    JSplitPane general = new JSplitPane(JSplitPane.HORIZONTAL_SPLIT,gauche ,droite);
     
    getContentPane().add(general)
    A noter tout de même que les scrollbar n'apparaissent que si le besoin s'en fait sentir par défaut, mais le comportement peut être changé au moyens de méthodes qui sont documentées dans la Javadoc
    Hey, this is mine. That's mine. All this is mine. I'm claiming all this as mine. Except that bit. I don't want that bit. But all the rest of this is mine. Hey, this has been a really good day. I've eaten five times, I've slept six times, and I've made a lot of things mine. Tomorrow, I'm gonna see if I can't have sex with something.

  9. #9
    Membre confirmé Avatar de LinuxUser
    Inscrit en
    Avril 2007
    Messages
    857
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 857
    Points : 616
    Points
    616
    Par défaut
    Citation Envoyé par sinok Voir le message
    Bah il faut bien que tu mettes quelquechose dans ton JScrollPane, ce qui n'est pas vraiment le cas à l'heure actuelle

    Dans ton cas il faut inclure basGauche dans le JScrollPnae et ajouter le JScrollPane à ton JSplitPane

    A noter tout de même que les scrollbar n'apparaissent que si le besoin s'en fait sentir par défaut, mais le comportement peut être changé au moyens de méthodes qui sont documentées dans la Javadoc
    Merci Sinok,
    justement je suis allé voir la JAVADoc mais j'ai essayé de faire marcher la methode createVerticalScrollBar() j'ai pas reussi.
    Car je pensais qu'il fallait crée un ScrollPane avec le constructeur vide (car aucun constructeur n'est definit dans la java doc) puis l'ajouter au JPanel associé avec add().

    Enfin bon je note ton idée et je vais bien regarder dans la javadoc pour voir si je trouve mon bonheur.

    Par contre je rencontre un autre probleme.
    Je veux afficher un texte dans un JTextArea à chaque fois que j'appuie sur un bouton, mais il me crée à chaque fois un nouveau TextArea en dessous de l'autre.

    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
     
    JTextArea text ;
     
    ....
     
    JButton b=new JButton("Play");
    hautGauche.add(b);
    b.addActionListener(this);
     
    ...
     
    public void actionPerformed(ActionEvent e) 
    {
       Object source = e.getSource();
     
       if(source == b)
       {
          text=new JTextArea("Liste des evenements",20,20);
          basGauche.add(text);
          text.setText("Bouton play");
       } 
    }

  10. #10
    Membre confirmé Avatar de LinuxUser
    Inscrit en
    Avril 2007
    Messages
    857
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 857
    Points : 616
    Points
    616
    Par défaut
    J'ai trouvé où etait mon probleme.
    En fait je recréais à chaque fois un nouveau JTextArea en appuyant sur le bouton.

    Voila le code corrigé (ça pourrait aider qqun peut etre).

    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
    JTextArea text ;
    
    ....
    
    JButton b=new JButton("Play");
    hautGauche.add(b);
    b.addActionListener(this);
    text=new JTextArea("Liste des evenements",20,20);
    ...
    
    public void actionPerformed(ActionEvent e) 
    {
       Object source = e.getSource();
       
       if(source == b)
       {
          basGauche.add(text);
          text.setText("Bouton play");
       } 
    }
    [/QUOTE]

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

Discussions similaires

  1. Comment faire une interface de ce type....
    Par SpiderAlpha dans le forum C++Builder
    Réponses: 6
    Dernier message: 30/04/2007, 13h50
  2. Tableau dans une interface idl
    Par Polochon2001 dans le forum CORBA
    Réponses: 2
    Dernier message: 14/05/2004, 09h44
  3. [Débutant] Lancer une interface sous éclipse
    Par bonnefr dans le forum SWT/JFace
    Réponses: 11
    Dernier message: 11/05/2004, 15h59
  4. Comment créé une "interface" pour mes programmes??
    Par alcazar dans le forum Autres éditeurs
    Réponses: 5
    Dernier message: 09/02/2004, 13h02
  5. portabilité d'une interface
    Par marou dans le forum JBuilder
    Réponses: 4
    Dernier message: 21/03/2003, 08h53

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