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 :

Problème interface graphique


Sujet :

Java

  1. #41
    Modérateur
    Avatar de kolodz
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2008
    Messages
    2 209
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Avril 2008
    Messages : 2 209
    Billets dans le blog
    52
    Par défaut
    Faire un try/catch surtout...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    try
    {
    	Thread.sleep(5000);
    	fenetre.dispose();
    }
    	catch(InterruptedException e)
    {
    //TODO error to handle
    fenetre.dispose();
    }
    Je te conseil d'aller ouvrir un manuel sur Java et de le lire !

    Cordialement,
    Patrick Kolodziejczyk
    Si une réponse vous a été utile pensez à
    Si vous avez eu la réponse à votre question, marquez votre discussion
    Pensez aux FAQs et aux tutoriels et cours.

  2. #42
    Membre éclairé
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Août 2011
    Messages
    584
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Août 2011
    Messages : 584
    Par défaut
    Merci de la réponse.
    Si j'ai posté cette question bête, (en ayant reconnu qu'il s'agissait d'une question idiote), c'est parce que je n'avais pas vraiment le temps de faire des recherches, ou lire un manuel.
    J'ai modifié mon programme pendant une pause de boulot d'été

    Mais merci, tout marche bien maintenant, ou presque, ce coup-ci j'ai le temps de faire des recherches, donc je vais me débrouiller ^^

  3. #43
    Membre confirmé
    Homme Profil pro
    Étudiant
    Inscrit en
    Juillet 2011
    Messages
    100
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juillet 2011
    Messages : 100
    Par défaut
    Bonsoir,

    Tu peux regarder le GridBagLayout.

  4. #44
    Membre éclairé
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Août 2011
    Messages
    584
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Août 2011
    Messages : 584
    Par défaut
    Et bien je vais voir cela de suite, merci
    Par conte, je viens de me créer pour la n-ième fois un nouveau problème, inexplicable, en tout cas pour moi.
    J'ai créer une fenêtre, qui est censé ce coupé toute seul au bout de 5 secondes.
    Quand j'exécute que la classe de cette fenêtre, tout fonctionne.
    Mais quand je lance le programme normalement, et que j'accède à cette fenêtre, elle ne se coupe plus toute seul.

  5. #45
    Membre confirmé
    Homme Profil pro
    Étudiant
    Inscrit en
    Juillet 2011
    Messages
    100
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juillet 2011
    Messages : 100
    Par défaut
    Bonsoir,

    peut-on voir le code .

  6. #46
    Membre éclairé
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Août 2011
    Messages
    584
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Août 2011
    Messages : 584
    Par défaut
    Bonjour,
    dsl pour le code, j'ai été contraint de débrancher ma connexion internet suite à un orge, avant d'avoir eut le temps de l'incorporer dans le message précédent.

    Donc voici le code de la fenêtre qui doit s'arrêter au bout d'un certain délai:

    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
    import javax.swing.*;
    import java.awt.*;
     
    public class FenetreQuitter extends FenetreBoutonsListener {
    	private JLabel label;
    	private JLabel image;
     
    	public FenetreQuitter(){
    		super();
     
    		build();//On initialise notre fenêtre
    	}
     
    	private void build(){
    		setTitle("Quitter"); //On donne un titre à l'application
    		setSize(800,650); //On donne une taille à notre fenêtre
    		setLocationRelativeTo(null); //On centre la fenêtre sur l'écran
    		setResizable(true); //On permet le redimensionnement
    		setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); //On dit à l'application de se fermer lors du clic sur la croix
    		setContentPane(buildContentPane());
    	}
     
     
    	private JPanel buildContentPane(){
    		JPanel panel = new JPanel();
    		panel.setLayout(new BorderLayout());
     
    		JLabel label = new JLabel("J'espère que mon application vous a plu =D",JLabel.CENTER);
    		panel.add(label,BorderLayout.NORTH);
     
    		ImageIcon icone = new ImageIcon("quitter.gif");
    		JLabel image = new JLabel(icone,JLabel.CENTER);
    		panel.add(image,BorderLayout.CENTER);
     
    		return panel;
    	}
     
     
    	public static void main(String[] args) {
    		//On crée une nouvelle instance de notre FenetreTexte
    		FenetreQuitter fenetre = new FenetreQuitter();
    		fenetre.setVisible(true);//On la rend visible
     
     
    		try {
    				Thread.sleep(5000);
    				fenetre.dispose();
    			}
     
    			catch(InterruptedException e)
    {
    //TODO error to handle
    fenetre.dispose();
    }
     
     
     
    }
     
    	}
    Et le l'actionPerformed de la fenêtre principale:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    public void actionPerformed(ActionEvent ed) {
    		Object source = ed.getSource();} else if (source==bouton3){
    		JFrame FenetreQuitter = new  FenetreQuitter();
    		FenetreQuitter.setVisible(true);//On la rend visible
    		FenetreBoutonsListener.this.setVisible(false);
    	}
    }
    Remarque, lorsque je met le "Thread.sleep(5000); fenetre.dispose();" dans mon actionPerformed ( de la fenêtre principale), la fenêtre quitter se coupe bien, mais à l'affichage j'obtiens juste une JFrame avec en titre "Quitter".

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

    Informations forums :
    Inscription : Août 2004
    Messages : 8 765
    Par défaut
    Lecture obligatoire pour toute personne commençant avec Swing:

    http://gfx.developpez.com/tutoriel/j...ing-threading/

  8. #48
    Membre éclairé
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Août 2011
    Messages
    584
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Août 2011
    Messages : 584
    Par défaut
    Merci pour ce lien,
    j'ai bien lu toute la page, appris beaucoup de choses, notamment pour booster mes applications.
    Mais pourquoi la fenêtre quitter fonctionne correctement en fenêtre seul, mais pas avec le reste du programme ?

  9. #49
    Membre éclairé
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Août 2011
    Messages
    584
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Août 2011
    Messages : 584
    Par défaut
    Bonjour,
    je suis de retour !!!
    Pour ma fenêtre "quitter" qui ne se ferme pas, je vais essayer de me débrouiller, ça ne doit pas être un très gros problème.
    Par contre, suite à vos conseils, je me suis lancé dans un GridBagLayout.
    Et bien entendu, le résultat et.... BIZARRE par rapport à ce que j’essaie de faire.

    Voici 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
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
     import java.awt.*;
     import javax.swing.*;
     
     
    public class Test extends JFrame {
     
    	public static void main(String[] args) {
     
    		Test fenetre = new Test();
     
    		fenetre.getContentPane().setLayout(new GridBagLayout());
     
    		GridBagConstraints c1 = new GridBagConstraints();
    		c1.gridx = 2;	//cellule 2
    		c1.gridy = 1;	// cellule1
    		c1.gridwidth = 3;	// case occupés
    		c1.gridheight = 1;// case occupés
    		c1.weightx = 0;	// redimensionnement
    		c1.weighty = 0;	//redimensionnement
    		fenetre.getContentPane().add(new JLabel("J'essais d'intégrer un merveilleux Layout, à savoir le GridBagLayout"), c1);
     
    		GridBagConstraints  bouton1 = new GridBagConstraints();
    		bouton1.gridx = 1;
    		bouton1.gridy = 3;
    		bouton1.gridwidth = 2;
    		bouton1.gridheight = 1;
    		bouton1.weightx = 0;
    		bouton1.weighty = 0;
    		fenetre.getContentPane().add(new JButton("bouton1"), bouton1);
     
    		GridBagConstraints bouton2 = new GridBagConstraints();
    		bouton2.gridx = 4;
    		bouton2.gridy = 3;
    		bouton2.gridwidth = 2;
    		bouton2.gridheight = 1;
    		bouton2.weightx = 0;
    		bouton2.weighty = 0;
    		fenetre.getContentPane().add(new JButton("bouton2"), bouton2);
     
     
     
    		fenetre.setSize(600, 300);
    		fenetre.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    		fenetre.setVisible(true);
     
    	}
     
    }
    Donc revoilà en pièce jointe ce que j'essaie d'obtenir ( les trait rouges représentent le découpages de cases pour essayer de me faciliter un peu la vie (car je ne connais encore pas toutes les propriétés du GridBagLayout), et ce que j'obtiens.

    Merci d'avance pour votre aide
    Images attachées Images attachées   

  10. #50
    Modérateur
    Avatar de kolodz
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2008
    Messages
    2 209
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Avril 2008
    Messages : 2 209
    Billets dans le blog
    52
    Par défaut
    Si tu veux faire un affichage propre en utilisant les layout.
    Identifie les groupes de composants et groupe les dans un panel qui s'arrange pour afficher se groupe de manière cohérente entre les éléments de celui-ci.
    Après tu arrange les groupes de groupes... etc
    Jusqu'à obtenir le résultat voulu.
    Tu peux partir soit du général puis aller dans le détail ou faire l'inverse.
    Mais si tu n'arrive pas à faire ton affichage avec un seul layout, c'est qu'il t'en faut plusieurs.

    Cordialement,
    Patrick Kolodziejczyk.
    Si une réponse vous a été utile pensez à
    Si vous avez eu la réponse à votre question, marquez votre discussion
    Pensez aux FAQs et aux tutoriels et cours.

  11. #51
    Membre éclairé
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Août 2011
    Messages
    584
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Août 2011
    Messages : 584
    Par défaut
    Bonsoir,
    merci de ce conseil qui va mettre très utile
    Donc si je comprend bien, pour mon exemple il me faut deux panel, un pour le label, et un pour le GridBagLayout.

    Mais toutefois, afin d'accroitre mes connaissances en swing, j'aimerais savoir si l'idée que j'avais (de tout faire en GridBagLayout ) et faisable.
    Si oui, ce qui est certainement le cas, (et si quelqu'un à le temps), j'aimerais savoir ce qui clochais dans mon bout de code
    Cordialement

  12. #52
    Membre expérimenté
    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    281
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2007
    Messages : 281
    Par défaut
    Il y a trop de case sur ton dessin.
    Moi je ne vois que 2 lignes et 2 colonnes.
    Ensuite il y a beaucoup de propriété sur le GridBagConstraint comme celle qui dit ou installer un élément, comment remplir la case, etc.
    Cherche un tuto dessus.

  13. #53
    Membre confirmé
    Homme Profil pro
    Étudiant
    Inscrit en
    Juillet 2011
    Messages
    100
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juillet 2011
    Messages : 100
    Par défaut
    Bonsoir,

    je te mets une méthode que j'ai utilisé dans l'un de mes programmes, elle permet d'ajouter des composants (bouton,JLabel,JPanel... )dans un JPanel avec GridBagLayout tu peux la modifier selon tes besoins en rajoutant les propriétés que tu veux sur gbc:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    public static void ajouterComposant (JPanel cont,Object c,int ligne, int colonne,
                                             int largeur, int hauteur ){
     
    		GridBagLayout gbt = new GridBagLayout();
    		cont.setLayout(gbt);
    		GridBagConstraints gbc = new GridBagConstraints();
    		gbc.gridx=colonne;
    		gbc.gridy=ligne;
    		gbc.gridwidth=largeur;
    		gbc.gridheight=hauteur;
    		gbt.setConstraints((Component) c,gbc);
    		cont.add((Component) c);
     
    	}

  14. #54
    Membre expérimenté
    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    281
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2007
    Messages : 281
    Par défaut
    je te conseille ce tuto très complet qui m'a permis de comprendre le gridBagLayout : http://bbclone.developpez.com/fr/jav...gridbaglayout/

  15. #55
    Membre éclairé
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Août 2011
    Messages
    584
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Août 2011
    Messages : 584
    Par défaut
    Merci beaucoup pour toute vos réponses.
    J’essaierai tout cela lorsque j'aurais un peu de temps, car d'après tout ce que j'ai compris, le GridBagLayout est assez difficile à maitriser, et le boulot me prend de plus en plus de temps.
    Je vous retiendrai au courant dès que j'aurais eut le temps de mis remettre.
    Encore merci de toute votre aide,
    Cordialement,
    Bebuck

  16. #56
    Membre expérimenté
    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    281
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2007
    Messages : 281
    Par défaut
    C'est en effet le layout le plus difficile mais c'est également celui qui offre le plus de possibilité.

  17. #57
    Membre éclairé
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Août 2011
    Messages
    584
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Août 2011
    Messages : 584
    Par défaut
    Bonsoir,
    ce soir j'ai enfin eut le temps de refaire un peu de swing.
    J'ai donc bien lu le tuto que vous m'avez recommandé, et me suis lancé.
    Mais le résultat que j'obtiens n'est toujours pas celui souhaité.
    Donc je confirme, ce layout offre beaucoup de possibilités, mais n'est pas facile à gérer.

    Voici mes contraintes:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    GridBagConstraints MesBoutons = new GridBagConstraints();
    		MesBoutons.gridx=0;
    		MesBoutons.gridy=2;
    		panel.add(bouton, MesBoutons);
     
    		MesBoutons.gridx=2;
    		MesBoutons.gridy=2;
    		panel.add(bouton2, MesBoutons);
     
    		MesBoutons.gridx=3;
    		MesBoutons.gridy=2;
    		panel.add(bouton3, MesBoutons);
    Et voici le résultat en pièce jointe.


    Donc si quelqu'un a une idée, je suis preneur.
    Cordialement.
    Images attachées Images attachées  

  18. #58
    Membre expérimenté
    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    281
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2007
    Messages : 281
    Par défaut
    Le problème est que tu n'utilise que les propriétés gridx et gridy, alors qu'il y en a plein d'autres.

  19. #59
    Membre éclairé
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Août 2011
    Messages
    584
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Août 2011
    Messages : 584
    Par défaut
    Effectivement je n'ai pas utilisé d'autres propriétés.
    Je viens d'essayer de mettre GridBagConstraints.RELATIVE et GridBagConstraints.REMAINDER, pour préciser que le boutons est le dernier de la ligne de la colonne.
    Mais je ne vois pas quelle autre propriété utilisé.
    N'est-il pas possible de créer mon interface voulu uniquement avec ces propriétés ?

  20. #60
    Membre expérimenté
    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    281
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2007
    Messages : 281
    Par défaut
    il y a des propriété pour dire ou placer le composant, comment l'étendre, doit-il prendre toute la place, etc...

    Il faut lire le tutoriel, tout y est expliqué.

+ Répondre à la discussion
Cette discussion est résolue.
Page 3 sur 4 PremièrePremière 1234 DernièreDernière

Discussions similaires

  1. Problèmes Interface graphique
    Par COLOMBAT dans le forum Interfaces Graphiques en Java
    Réponses: 11
    Dernier message: 27/11/2007, 15h33
  2. Problème Interface graphique avec EJB
    Par manuvd dans le forum AWT/Swing
    Réponses: 1
    Dernier message: 19/06/2007, 13h04
  3. Réponses: 3
    Dernier message: 15/06/2007, 19h14
  4. Problème interface graphique mandriva avec HP
    Par alicom86 dans le forum Mandriva / Mageia
    Réponses: 7
    Dernier message: 14/05/2007, 22h24
  5. Problème interface graphique
    Par thecyril dans le forum AWT/Swing
    Réponses: 1
    Dernier message: 14/01/2007, 17h08

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