Petite interface swing. 3 jtextfield 2 jbutton

Contenu du snippet

C'est un petit programme qui sert à montrer comment marche le BoxLayout. Cependant, il me reste un problème pour l'alignement de deux boutons. Je voudrais qu'ils soient alignées à droite mais ils restent obstinéments au centre. Merci de votre aide.

Source / Exemple :


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; }

A voir également

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.