Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum. Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

PETITE INTERFACE SWING. 3 JTEXTFIELD 2 JBUTTON


Information sur la source

Catégorie :Swing Classé sous : jtextfield, jbutton, swing, boxlayout, jpanel Niveau : Débutant Date de création : 08/07/2004 Date de mise à jour : 08/07/2004 11:36:10 Vu : 12 607

Note :
Aucune note

Commentaire sur cette source (5)
Ajouter un commentaire et/ou une note

Description

Cliquez pour voir la capture en taille normale
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

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

Commentaires et avis

signaler à un administrateur
Commentaire de neodante le 08/07/2004 16:41:16 administrateur CS

En gros tu nous montre ton premier programme en SWING pour simplifier ... en plus avec des problèmes que tu n'as pas résolu ... désolé d'être méchant comme ça mais les sources de ce style pulule de plus en plus et les gens ne vérifient pas s'il existe déjà des sources montrant la même chose ... souvent en plus leur source ne vale pas celle de leur prédecesseur ... mais bon chacun veut faire mieux que l'autre et c'est légitime !
@+

signaler à un administrateur
Commentaire de poiuytrez3 le 08/07/2004 19:35:26

Cher ami,
J'ai cherché sur le site les programmes qui utilisaient des objets swing en BoxLayout et qui les alignaient. J'ai aussi cherché  dans le tutorial de sun microsystem, ce n'est pas clair. N'y arrivant pas, j'ai publié mon code. Il n'y a pas des problèmes mais un problème. J'améliorerais mon code dès que j'aurai trouvé la solution. Je vois par contre que tu ne sais pas ce que c'est que l'entraide.

signaler à un administrateur
Commentaire de poiuytrez3 le 08/07/2004 19:35:44

Cher ami,
J'ai cherché sur le site les programmes qui utilisaient des objets swing en BoxLayout et qui les alignaient. J'ai aussi cherché  dans le tutorial de sun microsystem, ce n'est pas clair. N'y arrivant pas, j'ai publié mon code. Il n'y a pas des problèmes mais un problème. J'améliorerais mon code dès que j'aurai trouvé la solution. C'est un site d'entraide non?

signaler à un administrateur
Commentaire de neodante le 08/07/2004 20:49:50 administrateur CS

Je crois également que tu juges les personnes un peu trop hativement ... pour dire qu'elles ne savent pas ce que c'est l'entraide ...

De plus si on devait mettre une source pour chaque layout avoue qu'il y en aurait pas mal ... un layout c'est un layout il marhce tous pareil sauf qu'il n'affiche pas de la même façon ... alors qu'un programme dans lequel à l'aide d'un menu on peut changer les layout ... ca c'est plutot pas mal ...

Mais comme je viens de relire mon post, je ne crois avoir  été particulièrement odieux avec toi ... et la fin laisse bien penser que ce n'est pas un grand reproche non plus ...

Mais attention ne confond pas entraide avec mettre à disposition ses propres sources ... ne pas polluer une bonne base de sources (je ne parle pas pour ton app mais en général) c'est aussi s'entraider ...
... sinon je serais (et beaucoup d'autres personnes) déjà environ à une bonne centaine de sources ...

ciao
@+

signaler à un administrateur
Commentaire de poiuytrez3 le 10/07/2004 12:30:53

Bon bon bon oublions.... Pensons plutôt à améliorer ce code!
Aurais tu la solution pour aligner les deux boutons ok et cancel? Merci

Ajouter un commentaire

Discussions en rapport avec ce code source dans le forum

Ajouter JButton au milieu d'un JPanel... [ par elvis36 ] Bonsoir, Voila en fait j'ai un problème très simple...J'ajoute simplement un bouton dans un panel. Dans le cas ci-dessous j'utilise un BoxLayout. mais [Swing] : probleme avec JScrollPane sur JPanel [ par dinfree ] Bonjour à tous, Un truc tout bête messieurs dames mais j'ai un probleme pour faire apparaitre un "scroll" sur un JPanel. La structure de mo Comparaison de classe [ par Hermios ] Bonjour à tous,Ma question est vraiment bête, mais j'a comprend  rien du tout!Alors voilà, j'ai cette ligne : if(componentList[i].getClass()==javax.sw swing--->jtextfield--->keypressed [ par kam81 ] salut, je suis debutant en java.Comment gerer l'evenement keypressed d'un jtextfield pour ne permettre de taper que des chiffres par exemple. [Swing] Probleme de size de JPanel, je ne controle rien. [ par zinZ ] Bonjour, Je suis en train de me prendre la tête avec les tailles de mes composants. J'utilise une JToolBar, avec plusieurs JPanel imbriqué dedans. E Probleme Placement JButton, JTextField etc... [ par Al3x38 ] Bonjour,Alors avant toute remarque, je tiens à dire que je suis totalement débutant en Java Graphique et que je viens d'avoir un projet qui est plus q lire le contenu d'un JTextField à partir d'un autre JFrame [ par Meriem85 ] Bonsoir,Ds mon code je veux lire le contenu de JTextField d'un JFrame à partir d'un autre JFrame.Voici ma classe [B]InterfConf [/B]de laquelle je veux Faire une grille de Jlabel dans une JFrame [ par ABF ] Bonjour, Je voudrais : 0) demander de sélectionner une map 1) charger un fichier texte, le parser en fonction des | et remplir un tableau 2) generer Quesque vous pensez ? [ par amine1234Z ] SalutEnfin Voila apres 6 jours de recherche comment Ajoutter un :Jtable avec layout null dans JscrollPane package testjscolpane;import ja auto-completition dans un jTextField [ par roura22 ] Salut, je veux avoir la fonction d'auto-comletition dans un jTextField en utilisant la bibliothèque swing.J'ai fais une recherche sur le net avant de


Nos sponsors

Sondage...

CalendriCode

Juillet 2009
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
2728293031  

Consulter la suite du CalendriCode

Comparez les prix Nouvelle version

Photothèque Nouveau !



Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés
Temps d'éxécution de la page : 0,468 sec

Google Coop CodeS-SourceS Google Coop CodeS-SourceS


Certaines images présentes sur le site (notament certains avatars) sont issues des collections IconShock, donc si vous souhaitez utiliser ces icons vous devez les acheter, ne les copiez pas et ne utilisez pas dans vos sites et applications sans les avoir commandé.