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. #61
    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
    Oui merci, j'avais lu le tutoriel, mais sans lire les codes des exemples.
    Maintenant que j'ai lu un code, je pense que je devrais m'en sortir.
    Je ne sais pas si mon codage est très conventionnel, mais je vais essayer.
    Je viendrai mettre mon code ici quand il sera fini et fonctionnel, enfin j'espère.
    Merci de votre aide

  2. #62
    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
    Voila mon code.
    c'est pas encore parfait, je ne sais pas si c'est très conventionnel, mais c'est déjà mieux que avant.

    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
    import java.awt.event.ActionEvent;
    import java.awt.event.ActionListener;
    import javax.swing.*;
    import java.awt.*;
    import java.util.ArrayList;
     
    import javax.swing.AbstractAction;
    import javax.swing.JOptionPane;
     
    public class test extends JFrame implements ActionListener{
    	private JButton bouton;
    	private JButton bouton2;
    	private JButton bouton3;
     
     
    	public test(){
    		super();
     
    		build();//On initialise notre fenêtre
    	}
     
    	private void build(){
     
     
    		setTitle("Voila mo programme"); //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 GridBagLayout());
     
     
    		JLabel label = new JLabel ("étiquette");
     
     
    		JTextField textfield=new JTextField();
     
     
    		bouton = new JButton("Menu principal");
    		bouton.addActionListener(this);
     
     
    		bouton2 = new JButton("bouton1");
    		bouton2.addActionListener(this);
     
     
    		bouton3 = new JButton (new ImageIcon(getClass().getClassLoader().getResource("image/quitter.jpg")));
    		bouton3.addActionListener(this);
     
    		//Définissons nos contraintes pour les composants
     
    		GridBagConstraints MesBoutons = new GridBagConstraints();
     
     
     
    		/* le composant suivant à placer est notre étiquette.
    		Plaçont l'étiquette "Veuillez saisir le texte à traduire.*/
     
    		MesBoutons.gridx = 0;
    		MesBoutons.gridy = 2;
     
    		/* une seule cellule sera disponible pour ce composant. */
    		MesBoutons.gridwidth = 1;
    		MesBoutons.gridheight = 1;
     
    		MesBoutons.fill = GridBagConstraints.NONE;
    		/* Maintenant, nous voyons sur notre interface que le composant n'est pas le seul sur sa ligne.
    		 Un champ de saisie le suit. Pour aligner correctement les etiquettes et les champs de saisie,
    		 la ligne d'écriture nous facilite le travail. Nous allons l'utiliser ici. */
     
    		MesBoutons.anchor = GridBagConstraints.BASELINE_LEADING; // pas LINE_START ni WEST !!
     
    		/* Une petite marge autour du composant. Attention à toujours les mêmes marges à gauche, sinon les
    		* composants ne sont plus alignés. */
    		MesBoutons.insets = new Insets(10, 15, 490, 0);
    		panel.add(label, MesBoutons);
     
    		/* passons au composant suivant: le champ de saisie. */
    		MesBoutons.gridx = 1; /* une position horizontalement à droite de l'étiquette */
    		MesBoutons.gridy = 2; /* sur la même ligne que l'étiquette */
     
    		MesBoutons.gridwidth = GridBagConstraints.REMAINDER; /* il est le dernier composant de sa ligne. */
    		MesBoutons.gridheight = 1; /* une seule cellule verticalement suffit */
     
    		/* Le composant peut s'étendre sur tout l'espace qui lui est attribué horizontalement. */
    		MesBoutons.fill = GridBagConstraints.HORIZONTAL;
     
    		/* Alignons ce composant sur la même ligne d'écriture que son étiquette. */
    		MesBoutons.anchor = GridBagConstraints.BASELINE;
    		/* Une petite marge autour du composant. Remarquons que nous n'avons pas spécifié de marge au dessus du
    		 composant. Comme nous avons décidé d'alginé ce composant sur la même ligne que l'étiquette, la marge
    		du haut sera calculée en interne pour s'aligner correctement avec l'étiquette. */
    		MesBoutons.insets = new Insets(0, 15, 0, 10);
    		panel.add(textfield, MesBoutons);
     
    		/* Nous pouvons passé aux boutons. */
    		MesBoutons.gridy = 3; /* nouvelle ligne */
    		MesBoutons.gridx = 0; /* première colonne, nous allons placé notre bouton "Menu principal" */
     
    		/*le bouton est plus large que l'étiquette située au dessus de lui et
    		* que le champ de saisie commence avant le bord gauche du bouton. Nous précisons donc deux cellules
    		* horizontalement.
    		*/
    		MesBoutons.gridwidth = 2;
    		MesBoutons.gridheight = 1; /* une seule cellule verticalement suffit */
     
    		/* Nous alons aligné les boutons sur leur ligne d'écriture également.*/
    		MesBoutons.anchor = GridBagConstraints.BASELINE_LEADING;
     
    		/* Aucun redimentionnement possible. Le bouton garde toujours soit sa taille minimum soit préférée. */
    		MesBoutons.fill = GridBagConstraints.NONE;
    		/* les attributs weightx, weighty sont tout deux a 0.*/
     
    		/* Une petite marge autour du composant.*/
    		MesBoutons.insets = new Insets(10, 15, 10, 10);
    		panel.add(bouton2, MesBoutons);
     
    		/* bouton suivant "Coder" */
    		/* le bouton précédent peut s'étendre sur deux cellules horizontalement. Celui-ci commence en 2. */
    		MesBoutons.gridx = 2; /* pour les dubitatifs, gridy vaut toujours 3 ;-) */
     
    		MesBoutons.gridwidth = GridBagConstraints.RELATIVE; // le bouton est l'avant dernier composant de sa ligne.
     
    		/* nous allons, sur ce bouton, définir un poids pour que celui-ci s'éloigne le plus du bouton précédent.*/
    		MesBoutons.weightx = 1.;
    		MesBoutons.anchor = GridBagConstraints.BASELINE_TRAILING; // Pas LINE_END, ni EAST.
    		MesBoutons.insets = new Insets(0, 0, 0, 220);
    		panel.add(bouton, MesBoutons);
     
            /* notre dernier bouton. */
            MesBoutons.gridx = 3;
            MesBoutons.weightx = 0.; /* remettons le poids à zéro. */
            MesBoutons.insets = new Insets(0, 3, 0, 10);
           panel.add(bouton3, MesBoutons);
     
            /* les 3 boutons sont ajoutés - fin étape 3.*/
     
     
     
     
     
    		return panel;
    	}
     
     
     
    	public static void main(String[] args) {
    		//On crée une nouvelle instance de notre FenetreBoutons
    		test fenetre = new test();
    		fenetre.setVisible(true);//On la rend visible
    	}
     
    	public void actionPerformed(ActionEvent e) {
    		Object source = e.getSource();
     
     
     
    }	
    }
    Par contre j'aimerais centrer une image dans la fenêtre, mais je n'y arrive pas.
    D’ailleurs vous pouvez remarquer que je n'ai pas réussi à centrer grand chose.
    Donc si quelqu'un sais comment s'y prendre

  3. #63
    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
    Bon, mon programme marche enfin très bien, hormis que n'ai toujours pas tout centrés=, et pas ajouté mon image.
    Toutefois (je sais quand posant cette question je risque d'en énervé certains),
    mais même après plusieurs recherches, je ne comprend toujours pas pourquoi ma page quitter ne se ferme pas toute seul.
    Je vous rappel le problème, j'ai un bouton quitter sur mes fenêtre qui est censé ouvrir une nouvelle fenêtre pour dire au revoir, et se fermer toute seul.
    Lorsque j'exécute la page quitter seul, tout fonctionne, mais dès que j'appelle cette page depuis une autre, elle ne se ferme plus.

    Voici le code d'une page appelant la fenêtre quitter:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    public void actionPerformed(ActionEvent e) {
    		Object source = e.getSource();if (source==bouton3){
    		JFrame FenetreQuitter = new  FenetreQuitter();
    		FenetreQuitter.setVisible(true);//On la rend visible
    		cettepage.this.setVisible(false);
    	}
    }
    et le code de la fenêtre quitter

    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
     
    	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();
    }
     
     
     
     
    }
    après si je met le try... dans les fenêtre appelant la fenêtre quitter, et bien j'ai une simple page blanche qui s'affiche, mais qui elle se referme bien.

  4. #64
    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
    tu devrais au moins mettre e.printStackTrace() dans ton catch pour voir s'il y a une erreur et laquelle.

  5. #65
    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
    Ah, merci du conseille,
    j'ai ajouté e printStackTrace(), à la fenêtre quitter,, mais aucune erreur n'est survenu.
    J'ai donc tout enlevé dans le ain de la fenêtre quitter, et rajouté ceci dans iune autre fenêtre:

    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
    if (source==bouton3){
    		JFrame FenetreQuitter = new  FenetreQuitter();
    		FenetreQuitter.setVisible(true);//On la rend visible
     
    		Unefenetre.this.setVisible(false);
     
    		try {
    				Thread.sleep(5000);
    				FenetreQuitter.dispose();
    			}
     
    			catch(InterruptedException e)
    {
     
    FenetreQuitter.dispose();
    e.printStackTrace();
    }
    et le résultat en pièce jointe.
    A noter que la fenêtre disparait, mais ne se coupe pas
    Images attachées Images attachées  

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

Discussions similaires

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

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