Mettre en forme la saisie

Résultat à obtenir

0 Un peu de théorie sur les classes de services

Gp est une classe de service qui fournit entre autres des fabriques et des objets statiques :

Des Panels dotés de GridBagLayout indicés
Des Méthodes de services pour l'encapsulation de GridBagConstraint

Les fabriques AbstractVUE et AbstractSAISIE utilisent les panels et le GridBagConstraint fournit par la classe de service GP

AbstractSAISIE fourni un panel Libellés jpDbl et un panel Edits JpDbE qu'il rempli automatiquement avec le mappage AbstractFICHE

1 Ajouter mon panel personnalisé en sur-définissant la méthode initGuiLE() de AbstractSAISIE

Modifier TableTestSAISIE

public void initGuiLE(){
	//initGuiLSimple(); //Le panel automatique des Libellés
	jpDbL=new JPanel(Gp.adaptePanelE());
	jpDbL.add(lcode, Gp.gety());
	jpDbL.add(llibe, Gp.gety());
	jpDbL.add(lstab, Gp.gety());
	//initGuiESimple(); //Le panel automatique des Edits
	jpDbE=new JPanel(Gp.adaptePanelE());
	jpDbE.add(code, Gp.gety());
	jpDbE.add(libe, Gp.gety());
	jpDbE.add(stab, Gp.gety());
}

2 Faire apparaître le libellé de sous_table_test

Modifier TableTestSAISIE

public void initGuiLE(){
	initGuiLSimple();
	//jpDbL=new JPanel(Gp.adaptePanelE());
	//jpDbL.add(lcode, Gp.gety());
	//jpDbL.add(llibe, Gp.gety());
	//jpDbL.add(lstab, Gp.gety());
	// initGuiESimple(); // Supprimer Le panel automatique des Edits
	jpDbE=new JPanel(Gp.adaptePanelE());
	jpDbE.add(code, Gp.gety());
	jpDbE.add(libe, Gp.gety());
	jpDbE.add(stab.getThisInPanelsetLibe("c_libe", 30), Gp.gety());
}

Je compile et je teste : la saisie tabulaire avec le libellé de sous_table_test

3 La mise en forme tabulaire est top simple, passer à une mise en forme de type fiche

Coder sa mise en forme en exploitant le GridBagConstraint intégré

public void initGuiLE(){
	initGuiLSimple();
	//jpDbL=new JPanel(Gp.adaptePanelE());
	//jpDbL.add(lcode, Gp.gety());
	//jpDbL.add(llibe, Gp.gety());
	//jpDbL.add(lstab, Gp.gety());
	// initGuiESimple(); // Supprimer Le panel automatique des Edits
	jpDbE=new JPanel(Gp.adaptePanelE());
	jpDbE.add(code, Gp.gety());
	jpDbE.add(libe, Gp.gety());
	jpDbE.add(stab.getThisInPanelsetLibe("c_libe", 30), Gp.gety());
}

Je compile et je teste : la fiche n'est plus tabulaire mais ce n'est pas beau

4 Aligner ses composants en exploitant le GridBagConstraint intégré

Modifier TableTestSAISIE

public void initGuiLE(){
	ccs.alignL(SwingConstants.LEFT); // Changer l'alignement par défaut des libellés'
	jpDbE=new JPanel(Gp.adaptePanelE());
	jpDbE.add(lcode, Gp.gety());
	jpDbE.add(llibe, Gp.getx());
	Gp.setx(0);
	jpDbE.add(code, Gp.gety());
	jpDbE.add(libe, Gp.getx());
	Gp.setx(0);
	Gp.setWidth(2);
	jpDbE.add(lstab, Gp.gety());
	jpDbE.add(stab.getThisInPanelsetLibe("c_libe", 30), Gp.gety());
	Gp.setWidth(1);
}

Les libellés et les édits sont tous dans le même panel. Le panel de libellés JpDbL n'est plus utile.
Les libellés sont alignés à droite par défaut.

Je compile et je teste : la fiche est correctement mise en page



Personnaliser son logiciel ...