[java] [Débutante]JinternalFrame et JOptionPane

JinternalFrame et JOptionPane [java] [Débutante] - Java - Programmation

Marsh Posté le 24-05-2004 à 13:23:19    

Bonjour, je veux ouvrir une boite de dialogue au clic sur un des boutons du menu ...
pb, ca ne m'ouvre pas une nouvelle boite mais simplement diminue la frame à la taille indiquée, sans même afficher les composants.
 
[cpp] optionModifier.addActionListener(
 new ActionListener(){
  public void actionPerformed(ActionEvent e)
   {
   
     
   JInternalFrame autre = new JInternalFrame("Login",false,false,false,false);
   setSize(400,250);
   JTextField enom = new JTextField(15);
   JPasswordField elogin = new JPasswordField (15);
   JButton btnString1 = new JButton ("Enter" );
   JButton btnString2 = new JButton ("Cancel" );  
   JOptionPane optionPane = new JOptionPane();
   JLabel nom = new JLabel ("Nom d'utilisateur" );
   JLabel login = new JLabel ("Mot de Passe" );
   
   Object[] array = {nom, login, enom, elogin};
   Object[] options = {btnString1, btnString2};
 
   optionPane = new JOptionPane(array,
   JOptionPane.QUESTION_MESSAGE,
   JOptionPane.YES_NO_OPTION,
   null,
   options,
   options[0]);
   show();
   //setContentPane(optionPane);
   Container c =autre.getContentPane();
   c.add(optionPane);
   autre.setOpaque(true);
   lebureau.add(autre);
   
      }
    }
 );    
 

Reply

Marsh Posté le 24-05-2004 à 13:23:19   

Reply

Marsh Posté le 24-05-2004 à 14:28:14    

Bon deja pour afficher une boite dialogue il faut utiliser la classe JDialog et pas une JInternalFrame.
Ensuite pour modifier les proprietes de ta boite de dialogue il ne faut pas oublier de preciser l'objet sur lequel tu travaille hein  :D  
Par exemple ton

Code :
  1. setSize(400,250);

devient

Code :
  1. autre.setSize(400,250);



---------------
Light is right
Reply

Marsh Posté le 24-05-2004 à 14:33:45    

c'est encore pire...ca ne m'affiche plus que la barre bleue...
c'est ca qu'il faut faire

Code :
  1. public void actionPerformed(ActionEvent e)
  2.   {
  3.   JDialog autre = new JDialog();
  4.   autre.setSize(400,250);
  5.   JTextField enom = new JTextField(15);
  6.   JPasswordField elogin = new JPasswordField (15);
  7.   JButton btnString1 = new JButton ("Enter" );
  8.   JButton btnString2 = new JButton ("Cancel" );
  9.   JOptionPane optionPane = new JOptionPane();
  10.   JLabel nom = new JLabel ("Nom d'utilisateur" );
  11.   JLabel login = new JLabel ("Mot de Passe" );
  12.   Object[] array = {nom, login, enom, elogin};
  13.   Object[] options = {btnString1, btnString2};
  14.   optionPane = new JOptionPane(array,
  15.   JOptionPane.QUESTION_MESSAGE,
  16.   JOptionPane.YES_NO_OPTION,
  17.   null,
  18.   options,
  19.   options[0]);
  20.   autre.pack();
  21.   autre.setVisible(true);
  22.   //setContentPane(optionPane);
  23.   //Container c =autre.getContentPane();
  24.   //c.add(optionPane);
  25.   //autre.setOpaque(true);
  26.   lebureau.add(autre);
  27.      }
  28.    }
  29. );


désolé si je suis un peu perdue, mé je suis vraiment une débutante

Reply

Marsh Posté le 24-05-2004 à 15:03:47    

Bon déjà une petite lecture sur les boites de dialogue s'impose:
http://java.sun.com/docs/books/tut [...] ialog.html
Et... euh... a quoi il sert ton JOptionPane ? Tu l'alloue mais tu ne t'en sert pas ailleur...
Enfin bon, je te conseille quand meme de créer une classe pour ta boite dialogue (héritant de JDialog) contenant tes champs login et password. Ca sera plus clair.


---------------
Light is right
Reply

Marsh Posté le 24-05-2004 à 15:28:09    

Allez, c'est mon jour de bonté  :D  

Code :
  1. final public class PasswordDialog extends JDialog {
  2.   private GridLayout layout;
  3.   private JLabel labelUser;
  4.   private JTextField textFieldUser;
  5.   private JLabel labelPassword;
  6.   private JTextField textFieldPassword;
  7.   private JButton buttonOK;
  8.   private JButton buttonCancel;
  9.   public PasswordDialog(final Frame owner) {
  10.     super(owner, "Login", true);
  11.     final Container contentPane = this.getContentPane();
  12.     /* Definition du Layout */
  13.     final int rows = 3;
  14.     final int cols = 2;
  15.     final int gap = 10;
  16.     layout = new GridLayout(rows, cols, gap, gap);
  17.     contentPane.setLayout(layout);
  18.     /* Nom de l'utilisateur */
  19.     labelUser = new JLabel("User name:" );
  20.     textFieldUser = new JTextField();
  21.     contentPane.add(labelUser);
  22.     contentPane.add(textFieldUser);
  23.     /* Mot de passe */
  24.     labelPassword = new JLabel("Password:" );
  25.     textFieldPassword = new JTextField();
  26.     contentPane.add(labelPassword);
  27.     contentPane.add(textFieldPassword);
  28.     /* Bouton OK */
  29.     buttonOK = new JButton("OK" );
  30.     buttonOK.addActionListener(new ActionListener() {
  31.       public void actionPerformed(final ActionEvent e) {
  32.         buttonOK_actionPerformed(e);
  33.       }//end actionPerformed
  34.     });
  35.     contentPane.add(buttonOK);
  36.     /* Bouton Cancel */
  37.     buttonCancel = new JButton("Cancel" );
  38.     buttonCancel.addActionListener(new ActionListener() {
  39.       public void actionPerformed(final ActionEvent e) {
  40.         buttonCancel_actionPerformed(e);
  41.       }//end actionPerformed
  42.     });
  43.     contentPane.add(buttonCancel);
  44.     /* Taille de la boite dialogue */
  45.     this.setSize(300, 200);
  46.   }//end PasswordDialog
  47.   public void buttonOK_actionPerformed(final ActionEvent e) {
  48.     System.out.println("click OK" );
  49.     System.out.println(" login: " + textFieldUser.getText());
  50.     System.out.println(" password: " + textFieldPassword.getText());
  51.   }//end buttonOK_actionPerformed
  52.   public void buttonCancel_actionPerformed(final ActionEvent e) {
  53.     System.out.println("click Cancel" );
  54.     dispose();
  55.   }//end buttonCancel_actionPerformed
  56. }//end PasswordDialog


Codé à l'arrache, patapai  :)


---------------
Light is right
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed