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

Agents de placement/Fenêtres Java Discussion :

JDialog


Sujet :

Agents de placement/Fenêtres Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    82
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 82
    Par défaut JDialog
    Bonjour

    J'explique rapidement ce que je voudrais obtenir:
    j'ai un menu (que j'appelle Game), je clique sur un JMenuItem de ce menu (New Game par exemple) et j'aimerais qu'apparaisse un JDialog contenant:
    - un string ("Choisir l'option souhaitée")
    - un groupe de JRadioButton ("1", "2", "3")
    - les classiques boutons "OK" et "Cancel"
    le but étant bien entendu de récupérer la valeur du JRadioButton sélectionné

    Ma question est donc: un tel JDialog est-il possible? si oui, comment le réaliser?

  2. #2
    Membre expérimenté
    Avatar de GLDavid
    Homme Profil pro
    Head of Service Delivery
    Inscrit en
    Janvier 2003
    Messages
    2 909
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Head of Service Delivery
    Secteur : Industrie Pharmaceutique

    Informations forums :
    Inscription : Janvier 2003
    Messages : 2 909
    Par défaut
    Un truc comme ça ?
    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
     
    public class Essai extends javax.swing.JDialog {
     
        /** Creates new form Essai */
        public Essai(java.awt.Frame parent, boolean modal) {
            super(parent, modal);
            initComponents();
        }
     
        /** This method is called from within the constructor to
         * initialize the form.
         * WARNING: Do NOT modify this code. The content of this method is
         * always regenerated by the Form Editor.
         */
        private void initComponents() {
            buttonGroup1 = new javax.swing.ButtonGroup();
            buttonGroup2 = new javax.swing.ButtonGroup();
            jPanel1 = new javax.swing.JPanel();
            jLabel1 = new javax.swing.JLabel();
            jPanel2 = new javax.swing.JPanel();
            jButton1 = new javax.swing.JButton();
            jButton2 = new javax.swing.JButton();
            jPanel3 = new javax.swing.JPanel();
            jRadioButton1 = new javax.swing.JRadioButton();
            jRadioButton2 = new javax.swing.JRadioButton();
            jRadioButton3 = new javax.swing.JRadioButton();
     
            setDefaultCloseOperation(javax.swing.WindowConstants.DISPOSE_ON_CLOSE);
            jPanel1.setLayout(new java.awt.BorderLayout());
     
            jLabel1.setHorizontalAlignment(javax.swing.SwingConstants.CENTER);
            jLabel1.setText("Choisir l'option");
            jPanel1.add(jLabel1, java.awt.BorderLayout.NORTH);
     
            jButton1.setText("Ok");
            jPanel2.add(jButton1);
     
            jButton2.setText("Cancel");
            jPanel2.add(jButton2);
     
            jPanel1.add(jPanel2, java.awt.BorderLayout.SOUTH);
     
            jRadioButton1.setText("jRadioButton1");
            jPanel3.add(jRadioButton1);
     
            jRadioButton2.setText("jRadioButton2");
            jPanel3.add(jRadioButton2);
     
            jRadioButton3.setText("jRadioButton3");
            jPanel3.add(jRadioButton3);
     
            jPanel1.add(jPanel3, java.awt.BorderLayout.CENTER);
     
            getContentPane().add(jPanel1, java.awt.BorderLayout.CENTER);
     
            pack();
        }
     
        /**
         * @param args the command line arguments
         */
        public static void main(String args[]) {
            new Essai(new javax.swing.JFrame(), true).show();
        }
     
        // Variables declaration - do not modify
        private javax.swing.ButtonGroup buttonGroup1;
        private javax.swing.ButtonGroup buttonGroup2;
        private javax.swing.JButton jButton1;
        private javax.swing.JButton jButton2;
        private javax.swing.JLabel jLabel1;
        private javax.swing.JPanel jPanel1;
        private javax.swing.JPanel jPanel2;
        private javax.swing.JPanel jPanel3;
        private javax.swing.JRadioButton jRadioButton1;
        private javax.swing.JRadioButton jRadioButton2;
        private javax.swing.JRadioButton jRadioButton3;
        // End of variables declaration
     
    }
    @ ++
    GLDavid
    Consultez la FAQ Perl ainsi que mes cours de Perl.
    N'oubliez pas les balises code :tagcode: ni le tag :resolu:

    Je ne répond à aucune question technique par MP.

  3. #3
    Membre confirmé
    Inscrit en
    Avril 2004
    Messages
    125
    Détails du profil
    Informations forums :
    Inscription : Avril 2004
    Messages : 125
    Par défaut ............
    Bien sur que c'est possible de le realiser ton dialogue
    Si ce n'est que ces trois controles que tu veux mettre,je te conseil d'utiliser un BorderLayout et un FlowLayout.
    T'as deux Panels,JP1(BorderLayout) et JP2(FlowLayout)
    JP1 renferme:
    -Ton string est dans un JLabel au "North"
    -Tes trois boutons radio seront en fait un ButtonGroup au "South" ou "Center",c'est plus facile un ButtonGroup et la t'es sur que un seul bouton radio est selectionné a la fois
    JP2 renferme les deux boutons Ok et Cancel disposés sur la meme ligne en FlowLayout

    J'espere que cela repond a ta question....
    Si tu utilises un IDE avec RAD,ca irait plus vite pratiquement sans avoir à coder la moindre instruction

  4. #4
    Membre confirmé
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    82
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 82
    Par défaut
    ok merci bcp à tous les deux

    @GLDavid: un truc comme ça tout à fait.

    @feed_our_vision: j'essaie de me familiariser avec swing. Je suis bien conscient que ça irait plus vite si j'utilisais un IDE avec RAD mais bon pour apprendre je trouve qu'il n'y a rien de mieux que coder.

  5. #5
    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
    Par défaut
    Citation Envoyé par Wisefool
    pour apprendre je trouve qu'il n'y a rien de mieux que coder.
    +1.

  6. #6
    Membre expérimenté
    Avatar de GLDavid
    Homme Profil pro
    Head of Service Delivery
    Inscrit en
    Janvier 2003
    Messages
    2 909
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Head of Service Delivery
    Secteur : Industrie Pharmaceutique

    Informations forums :
    Inscription : Janvier 2003
    Messages : 2 909
    Par défaut
    Citation Envoyé par Pill_S
    Citation Envoyé par Wisefool
    pour apprendre je trouve qu'il n'y a rien de mieux que coder.
    +2.
    Et même car rare sont les débutants qui pensent comme toi.
    GLDavid
    Consultez la FAQ Perl ainsi que mes cours de Perl.
    N'oubliez pas les balises code :tagcode: ni le tag :resolu:

    Je ne répond à aucune question technique par MP.

  7. #7
    Membre confirmé
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    82
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 82
    Par défaut
    arretez vous allez me faire rougir

    bon j'en profite que je vous ai sous la main pour poser une autre question. Question sans doute stupide mais bon le ridicule ne tue pas.
    Et puis je viens de gagner 2 vies alors autant utiliser ces petits bonus

    voici le code que j'ai pour l'instant:

    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
     
    /*
     * Created on 20 oct. 2004
     *
     * TODO To change the template for this generated file go to
     * Window - Preferences - Java - Code Style - Code Templates
     */
    package game;
     
    import java.awt.*;
    import java.awt.event.*;
    import javax.swing.*;
     
     
    /**
     * @author Ender
     *
     * TODO To change the template for this generated type comment go to
     * Window - Preferences - Java - Code Style - Code Templates
     */
    public class ChoiceDialog extends JDialog 
    						  /*implements ActionListener, ItemListener */{
     
        private JPanel panel1, panel2, panel3;
        private final int numButtons = 3;
        private JRadioButton[] radioButtons = new JRadioButton[numButtons];
        private final ButtonGroup group = new ButtonGroup();
        private final JLabel label = new JLabel("Choose the game settings:\n");
        private JButton buttonOK;
        private JButton buttonCancel;
     
    	private int choice;
    	private final String oneP_oneCCommand = "onePlayer_oneComputer";
    	private final String twoP_oneCCommand = "twoPlayers_oneComputer";
    	private final String twoP_twoCCommand = "twoPlayers_twoComputers";
        private String btnString1 = "OK";
        private String btnString2 = "Cancel";
     
        /** Creates the reusable dialog. */
        public ChoiceDialog(Frame aFrame){
        	super(aFrame, true);
        	initComponents();
        }
     
        public void initComponents(){
     
            setDefaultCloseOperation(javax.swing.WindowConstants.DISPOSE_ON_CLOSE);
     
        	panel1 = new JPanel(new BorderLayout());    	
        	label.setHorizontalAlignment(SwingConstants.CENTER);
        	panel1.add(label, BorderLayout.NORTH);
     
        	panel2 = new JPanel(new GridLayout(3, 1));
        	// Creates a group of radio buttons
    	    radioButtons[0] = new JRadioButton("1 Player 1 Computer");
    	    radioButtons[0].setActionCommand(oneP_oneCCommand);
     
    	    radioButtons[1] = new JRadioButton("2 Players 1 Computer");
    	    radioButtons[1].setActionCommand(twoP_oneCCommand);
     
    	    radioButtons[2] = new JRadioButton("2 Players 2 Computers");
    	    radioButtons[2].setActionCommand(twoP_twoCCommand);
     
    	    for (int i = 0; i < numButtons; i++) {
    		    panel2.add(radioButtons[i]);
    	        group.add(radioButtons[i]);
    	    }
    	    radioButtons[0].setSelected(true);
            panel1.add(panel2, BorderLayout.CENTER);
     
    	    panel3 = new JPanel(new FlowLayout());
    	    buttonOK = new JButton("OK");
    	    panel3.add(buttonOK);
    	    buttonCancel = new JButton("Cancel");
    	    panel3.add(buttonCancel);
            panel1.add(panel3, BorderLayout.SOUTH);
     
            getContentPane().add(panel1, java.awt.BorderLayout.CENTER);
     
            pack();
        }
     
        /**
         * @param args the command line arguments
         */
        public static void main(String args[]) {
            new ChoiceDialog(new javax.swing.JFrame()).show();
        }
    }
    et je trouve que tout est serré. C quoi les differentes solutions pour aérer un peu tout ça? Genre comment je fais pour mettre un peu d'espace entre mes panel 1, 2 et 3?

  8. #8
    Membre confirmé
    Inscrit en
    Avril 2004
    Messages
    125
    Détails du profil
    Informations forums :
    Inscription : Avril 2004
    Messages : 125
    Par défaut ........
    Pour aerer ce qu'il te faut c'est pas de l'espace entre deux panels mais plutot de l'espace entre les controles d'un meme panel.
    Quand tu utilises un flowlayout par exemple,tu peux paremetrer le hgap et le vgap entre les differents controles du panel.
    Tu peux aussi agrandir ton Dialogue carrément avec la methode
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    setSize(new Dimension(L,l));
    Tes panels en seront plus grands donc plus aérés

  9. #9
    Membre confirmé
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    82
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 82
    Par défaut
    merci
    en fait, j'ai utilisé createEmptyBorder()
    mais je garderai ton conseil en tete

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

Discussions similaires

  1. [Debutant][JDialog] rendre opaque un jdialog?
    Par britou dans le forum Agents de placement/Fenêtres
    Réponses: 11
    Dernier message: 16/06/2004, 12h51
  2. [debutant] JDialog non modal
    Par andresan dans le forum Agents de placement/Fenêtres
    Réponses: 10
    Dernier message: 12/05/2004, 14h40
  3. [JDialog] JDialog ou JFrame ?
    Par Mister Nono dans le forum Agents de placement/Fenêtres
    Réponses: 2
    Dernier message: 25/04/2004, 22h55
  4. [JDialog] Modification dans une fenêtre
    Par cefabien dans le forum Agents de placement/Fenêtres
    Réponses: 3
    Dernier message: 01/10/2003, 14h18
  5. Récuperer les icons des JDialog
    Par Pro_Fete dans le forum Agents de placement/Fenêtres
    Réponses: 2
    Dernier message: 17/04/2003, 14h00

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