ffluff Challenge Everything | 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 :
- import javax.swing.*; // pour réduire les lignes dans le quote
- import static javax.swing.GroupLayout.Alignment.*;
- import java.awt.*; // pour réduire les lignes dans le quote
- public class test4 extends JFrame{
- private static final long serialVersionUID = 123456789L;
- private String title;
- private JTextField login, pwd;
- public test4(String title){
- super();
- this.title = title;
- this.build();
- }
- private void build(){
- setTitle(this.title); //On donne un titre à l'application
- setLocationRelativeTo(null);
- setResizable(true);
- setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); //On dit à l'application de se fermer lors du clic sur la croix
- JPanel mainPanel = buildContentPanel();
- setContentPane(mainPanel);
- }
- private JPanel buildContentPanel(){
- JPanel mainPanel = new JPanel();
- JPanel authpanel = new JPanel();
- authpanel.setBorder(javax.swing.BorderFactory.createEtchedBorder());
-
- JLabel lbl_login = new JLabel("Code" );
- login = new JTextField("login" );
- login.setColumns(5);
- JLabel lbl_pwd = new JLabel("Mot de passe______" );
- pwd = new JTextField("pwd" );
- pwd.setColumns(5);
- javax.swing.GroupLayout authpanelLayout = new javax.swing.GroupLayout(authpanel);
- authpanel.setLayout(authpanelLayout);
- authpanelLayout.setHorizontalGroup(
- authpanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
- .addGroup(authpanelLayout.createSequentialGroup()
- .addGroup(authpanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
- .addComponent(lbl_login)
- .addComponent(lbl_pwd))
- .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
- .addGroup(authpanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
- .addComponent(login, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE, Short.MAX_VALUE)
- .addComponent(pwd, 0, 0, Short.MAX_VALUE)
- )
- )
- );
-
- authpanelLayout.setVerticalGroup(
- authpanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
- .addGroup(authpanelLayout.createSequentialGroup()
- .addGroup(authpanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
- .addComponent(lbl_login)
- .addComponent(login, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
- )
- .addGap(18, 18, 18)
- .addGroup(authpanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
- .addComponent(lbl_pwd)
- .addComponent(pwd, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
- )
- )
- );
- mainPanel.add(authpanel);
- this.setSize(mainPanel.getPreferredSize());
-
- return mainPanel;
- }
- public static void main(String args[]){
- test4 app_frame = new test4("TEST4" );
- app_frame.setVisible(true);
- }
- }
|
Message édité par ffluff le 24-02-2008 à 20:08:42
|