[RESOLU]Swing connaitre la taille nécessaire d'un JPanel

Swing connaitre la taille nécessaire d'un JPanel [RESOLU] - Java - Programmation

Marsh Posté le 22-02-2008 à 21:53:07    

:hello:  
 
Je voudrais faire une fenetre qui aurait la taille minimale sans qu'elle ai une barre de scrolling.
en faisant MonJpanel.setSize(mainPanel.getPreferredSize()); j'ai une fenetre plus petite que le contenu du mainPanel :(
 
je pourrais spécifier la taille de la fenetre en "dur" dans le source, mais le probleme c'est que la fenetre sera ammener a contenir d'autre JPanel au court de l'execution et donc de devoir "grossir" dynamiquement au fil du temps.
 
Sauriez vous comment faire ?
 

Code :
  1. import javax.swing.*; // pour réduire les lignes dans le quote
  2. import static javax.swing.GroupLayout.Alignment.*;
  3. import java.awt.*;  // pour réduire les lignes dans le quote
  4. public class test4 extends JFrame{
  5. private static final long serialVersionUID = 123456789L;
  6. private String title;
  7. private JTextField login, pwd;
  8. public test4(String title){
  9.  super();
  10.  this.title = title;
  11.  this.build();
  12. }
  13. private void build(){
  14.  setTitle(this.title); //On donne un titre à l'application
  15.  setLocationRelativeTo(null);
  16.  setResizable(true);
  17.  setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); //On dit à l'application de se fermer lors du clic sur la croix
  18.  JPanel mainPanel = buildContentPanel();
  19.  setContentPane(mainPanel);
  20. }
  21. private JPanel buildContentPanel(){
  22.  JPanel mainPanel = new JPanel();
  23.         JPanel authpanel = new JPanel();
  24.         authpanel.setBorder(javax.swing.BorderFactory.createEtchedBorder());
  25.        
  26.         JLabel lbl_login = new JLabel("Code" );
  27.  login = new JTextField("login" );
  28.  login.setColumns(5);
  29.  JLabel lbl_pwd = new JLabel("Mot de passe______" );
  30.  pwd = new JTextField("pwd" );
  31.  pwd.setColumns(5);
  32.  javax.swing.GroupLayout authpanelLayout = new javax.swing.GroupLayout(authpanel);
  33.         authpanel.setLayout(authpanelLayout);
  34.         authpanelLayout.setHorizontalGroup(
  35.             authpanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
  36.             .addGroup(authpanelLayout.createSequentialGroup()
  37.                 .addGroup(authpanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
  38.                     .addComponent(lbl_login)
  39.                     .addComponent(lbl_pwd))
  40.                 .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
  41.                 .addGroup(authpanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
  42.                     .addComponent(login, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE, Short.MAX_VALUE)
  43.                     .addComponent(pwd, 0, 0, Short.MAX_VALUE)
  44.                 )
  45.             )
  46.         );
  47.        
  48.         authpanelLayout.setVerticalGroup(
  49.             authpanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
  50.             .addGroup(authpanelLayout.createSequentialGroup()
  51.                 .addGroup(authpanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
  52.                     .addComponent(lbl_login)
  53.                     .addComponent(login, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
  54.                     )
  55.                 .addGap(18, 18, 18)
  56.                 .addGroup(authpanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
  57.                     .addComponent(lbl_pwd)
  58.                     .addComponent(pwd, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
  59.                     )
  60.                )
  61.         );
  62.         mainPanel.add(authpanel);
  63.         this.setSize(mainPanel.getPreferredSize());
  64.        
  65.         return mainPanel;
  66. }
  67. public static void main(String args[]){
  68.  test4 app_frame = new test4("TEST4" );
  69.  app_frame.setVisible(true);
  70. }
  71. }


Message édité par ffluff le 24-02-2008 à 20:08:42
Reply

Marsh Posté le 22-02-2008 à 21:53:07   

Reply

Marsh Posté le 23-02-2008 à 16:42:26    

je me réponds a moi meme:
monJframe.pack() permets de faire en sorte que la JFrame soit a la bonne taille.

Reply

Sujets relatifs:

Leave a Replay

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