- import javax.swing.*;
- import java.awt.*;
-
- public class TheBoxLayout
- {
- public static void main(String[] args)
- {
- SwingUtilities.invokeLater(new
- Runnable()
- {
- public void run()
- {
- JFrame.setDefaultLookAndFeelDecorated(true);
- LayoutFrame frame = new LayoutFrame();
- frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
- frame.pack();
- frame.setVisible(true);
- }
- });
- }
- }
-
- class LayoutFrame extends JFrame
- {
- public LayoutFrame()
- {
- setTitle("Test de BoxLayout");
-
- createMainPanel();
- createTextFieldPanel();
- createButtonPanel();
-
- mainPanel.add(txtPanel);
- mainPanel.add(buttonPanel);
-
- getContentPane().add(mainPanel);
-
- }
-
- /** Crée un panneau de champs */
- private void createTextFieldPanel()
- {
- txtPanel = new JPanel();
- txtPanel.setLayout(new BoxLayout(txtPanel, BoxLayout.PAGE_AXIS));
- createTextField(txtFirstName);
- createTextField(txtLastName);
- createTextField(txtTelNumber);
- txtPanel.setBorder(BorderFactory.createEmptyBorder(10,10,10,10));
-
- }
-
- /**
- * Crée un nouveau champs de texte
- * @param txtF Le bouton à créer
- */
- private void createTextField(JTextField txtF)
- {
- txtF = new JTextField(10);
- txtPanel.add(txtF);
- txtPanel.add(Box.createRigidArea(new Dimension(0,10)));
- }
-
- /** Crée un panneau de boutons */
- private void createButtonPanel()
- {
- buttonPanel = new JPanel();
- buttonPanel.setLayout(new BoxLayout(buttonPanel, BoxLayout.LINE_AXIS));
- createButton(btnOk, "Ok");
- createButton(btnCancel, "Cancel");
- }
-
- /**
- * Crée un bouton et l'ajoute au panneau de bouton
- * @param button Le bouton a créer
- * @param name Nom du bouton
- */
- private void createButton(JButton button, String name)
- {
- button = new JButton(name);
- button.setAlignmentX(JButton.RIGHT_ALIGNMENT);
- buttonPanel.add(button);
- }
-
- private void createMainPanel()
- {
- mainPanel = new JPanel();
- mainPanel.setLayout(new BoxLayout(mainPanel, BoxLayout.PAGE_AXIS));
- }
-
- JPanel mainPanel;
- JPanel txtPanel;
- JPanel buttonPanel;
- JTextField txtFirstName;
- JTextField txtLastName;
- JTextField txtTelNumber;
- JButton btnOk;
- JButton btnCancel;
- }
import javax.swing.*;
import java.awt.*;
public class TheBoxLayout
{
public static void main(String[] args)
{
SwingUtilities.invokeLater(new
Runnable()
{
public void run()
{
JFrame.setDefaultLookAndFeelDecorated(true);
LayoutFrame frame = new LayoutFrame();
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.pack();
frame.setVisible(true);
}
});
}
}
class LayoutFrame extends JFrame
{
public LayoutFrame()
{
setTitle("Test de BoxLayout");
createMainPanel();
createTextFieldPanel();
createButtonPanel();
mainPanel.add(txtPanel);
mainPanel.add(buttonPanel);
getContentPane().add(mainPanel);
}
/** Crée un panneau de champs */
private void createTextFieldPanel()
{
txtPanel = new JPanel();
txtPanel.setLayout(new BoxLayout(txtPanel, BoxLayout.PAGE_AXIS));
createTextField(txtFirstName);
createTextField(txtLastName);
createTextField(txtTelNumber);
txtPanel.setBorder(BorderFactory.createEmptyBorder(10,10,10,10));
}
/**
* Crée un nouveau champs de texte
* @param txtF Le bouton à créer
*/
private void createTextField(JTextField txtF)
{
txtF = new JTextField(10);
txtPanel.add(txtF);
txtPanel.add(Box.createRigidArea(new Dimension(0,10)));
}
/** Crée un panneau de boutons */
private void createButtonPanel()
{
buttonPanel = new JPanel();
buttonPanel.setLayout(new BoxLayout(buttonPanel, BoxLayout.LINE_AXIS));
createButton(btnOk, "Ok");
createButton(btnCancel, "Cancel");
}
/**
* Crée un bouton et l'ajoute au panneau de bouton
* @param button Le bouton a créer
* @param name Nom du bouton
*/
private void createButton(JButton button, String name)
{
button = new JButton(name);
button.setAlignmentX(JButton.RIGHT_ALIGNMENT);
buttonPanel.add(button);
}
private void createMainPanel()
{
mainPanel = new JPanel();
mainPanel.setLayout(new BoxLayout(mainPanel, BoxLayout.PAGE_AXIS));
}
JPanel mainPanel;
JPanel txtPanel;
JPanel buttonPanel;
JTextField txtFirstName;
JTextField txtLastName;
JTextField txtTelNumber;
JButton btnOk;
JButton btnCancel;
}