Position des composants.

Résolu
developvbdebut Messages postés 476 Date d'inscription samedi 14 août 2004 Statut Membre Dernière intervention 2 juin 2012 - 16 août 2006 à 08:06
developvbdebut Messages postés 476 Date d'inscription samedi 14 août 2004 Statut Membre Dernière intervention 2 juin 2012 - 21 août 2006 à 21:21
Bonjour tout le monde

J'ai du mal à positionner les composants sur une ligne.

Mon autre problème est de pouvoir placer les composants l'un au dessus de l'autre. 

Voici la classe principal

import java.awt.*;
import java.awt.event.*;



import javax.swing.*;
import javax.swing.event.*;
import java.awt.image.*;



public class Banque {



public final static int longu = 700;
 
public final static int larg = 600;



public static void main(String[] args)
{





  JFrame F = new JFrame("Crédit toto");



  F.setSize(longu,larg);
  F.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
  
  F.setBackground(Color.darkGray);
  F.getContentPane().add(new Elementbanque(),BorderLayout.NORTH);
  F.getContentPane().add(new Table(),BorderLayout.CENTER);
  F.getContentPane().add(new Quit(),BorderLayout.SOUTH);
  F.setVisible(true);





}





}



Voici la class du composant

import javax.swing.*;
import java.awt.*;
import java.awt.event.*;




 



public class Quit extends JPanel implements ActionListener
{
JButton quit;



public Quit()
{



 quit = new JButton("Quitter");
 quit.addActionListener(this);
 this.add(quit);





}



public void actionPerformed(ActionEvent evt)
{



Object source = evt.getSource();





if(source==quit)
{



System.exit(0);



}




 



}
}



j'ai regardé ce tuto, mai ca ne ma pas beaucoup aidé

http://java.developpez.com/faq/java/?page=graphique_fenetres_composants#GRAPHIQUE_positionner_composant

Pouvez vous m'aider

Merci d'avance.

Cordialement

A bientôt

8 réponses

developvbdebut Messages postés 476 Date d'inscription samedi 14 août 2004 Statut Membre Dernière intervention 2 juin 2012 1
21 août 2006 à 21:21
bonsoir tout le monde

Bon, voici ce que j'ai fais.

Voici le code.

import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
import java.awt.Color.*;





public class Elementbanque extends JPanel implements ActionListener



{
modetable mo = new modetable();



int i = mo.getRowCount();




 



JTextField pretdemand;
JTextField quotient;
JTextField sommetot;
JTextField temps;
JButton quit;
JTable rembourcement;
JButton somme;



public Elementbanque()



{



 GridBagLayout gridbag = new GridBagLayout();
 GridBagConstraints constraints = new GridBagConstraints();
 this.setLayout(gridbag);



 JLabel creditinsset = new JLabel("Crédit INSSET");
  
 creditinsset.setForeground(Color.red);



 Font creditinssetfont = creditinsset.getFont();
 creditinssetfont = creditinssetfont.deriveFont(Font.BOLD).deriveFont(16f);
 creditinsset.setFont(creditinssetfont);



 constraints.gridx=1;
 constraints.gridy=0;
 constraints.gridwidth=1;
 constraints.gridheight=1;
 constraints.weightx=30;
 constraints.weighty=30;
 
 
 



 gridbag.setConstraints(creditinsset, constraints);
 this.add(creditinsset);





 JLabel sommedemand = new JLabel("Somme demandé");



 this.add(sommedemand);



 constraints.gridx=0;
 constraints.gridy=1;
 constraints.gridwidth=1;
 constraints.gridheight=1;
 constraints.weightx=30;
 constraints.weighty=30;
 
 



 gridbag.setConstraints(sommedemand, constraints);
 





  pretdemand = new JTextField(10);



 this.add(pretdemand);



 
 constraints.gridx=1;
 constraints.gridy=1;
 constraints.gridwidth=1;
 constraints.gridheight=1;
 constraints.weightx=30;
 constraints.weighty=30;
 
 gridbag.setConstraints(pretdemand, constraints);
 
 
 JLabel taux = new JLabel("Taux");
 this.add(taux);
 
 
 constraints.gridx=0;
 constraints.gridy=2;
 constraints.gridwidth=1;
 constraints.gridheight=1;
 constraints.weightx=30;
 constraints.weighty=30;



 gridbag.setConstraints(taux, constraints);



  quotient = new JTextField(10);



 this.add(quotient);
 
 
 constraints.gridx=1;
 constraints.gridy=2;
 constraints.gridwidth=1;
 constraints.gridheight=1;
 constraints.weightx=30;
 constraints.weighty=30;



 gridbag.setConstraints(quotient, constraints);




 



 
 JLabel nbmois = new JLabel("période du pret");
 this.add(nbmois);





 constraints.gridx=0;
 constraints.gridy=3;
 constraints.gridwidth=1;
 constraints.gridheight=1;



 constraints.weightx=30;
 constraints.weighty=30;



 gridbag.setConstraints(nbmois, constraints);




 




 





  temps= new JTextField(10);
 this.add(temps);



 
 constraints.gridx=1;
 constraints.gridy=3;
 constraints.gridwidth=1;
 constraints.gridheight=1;
 constraints.weightx=30;
 constraints.weighty=30;



 gridbag.setConstraints(temps, constraints);




 




 



 somme = new JButton("somme");
 somme.addActionListener(this);
 this.add(somme);
 



 constraints.gridx=0;
 constraints.gridy=25;
 constraints.gridwidth=1;
 constraints.gridheight=1;
 constraints.weightx=30;
 constraints.weighty=30;



 gridbag.setConstraints(somme, constraints);




 



 JLabel dette = new JLabel("Total due");
 this.add(dette);



 
 constraints.gridx=0;
 constraints.gridy=5;
 constraints.gridwidth=1;
 constraints.gridheight=1;
 constraints.weightx=30;
 constraints.weighty=30;



 gridbag.setConstraints(dette, constraints);




 



  sommetot = new JTextField(10);
 sommetot.addActionListener(this); 
 this.add(sommetot);
 
 
 constraints.gridx=1;
 constraints.gridy=5;
 constraints.gridwidth=1;
 constraints.gridheight=1;
 constraints.weightx=30;
 constraints.weighty=30;



 gridbag.setConstraints(sommetot, constraints);



 JLabel table = new JLabel("Tableau d'appurement du prêt");
 table.setForeground(Color.blue);
 this.add(table);
 
 constraints.gridx=1;
 constraints.gridy=6;
 constraints.gridwidth=1;
 constraints.gridheight=3;
 constraints.weightx=30;
 constraints.weighty=30;



 gridbag.setConstraints(table, constraints);





 
 String[][] rowData = new String[i][2];
 String[] columnNames = new String[2];
 
 columnNames[0]="Date";
 columnNames[1]="Somme prélevée";



 rembourcement = new JTable(rowData,columnNames);
 JScrollPane sroll = new JScrollPane(rembourcement);
 



 constraints.gridx=0;
 constraints.gridy=10;
 constraints.gridwidth=5;
 constraints.gridheight=8;
 constraints.weightx=0;
 constraints.weighty=0;
 
 
 gridbag.setConstraints(sroll, constraints);
 this.add(sroll);





 quit = new JButton("Quitter");
 quit.addActionListener(this);
 
 constraints.gridx=2;
 constraints.gridy=25;
 constraints.gridwidth=1;
 constraints.gridheight=1;
 constraints.weightx=20;
 constraints.weighty=20;
 gridbag.setConstraints(quit, constraints);
 this.add(quit);




 




 





 
}



public void actionPerformed(ActionEvent evt) {





Calcul c = new Calcul();




 



Object source = evt.getSource();





int totalannee=0, moi=0, tempstaux=0;



float totaldue=0;



String riendanssommdemande="";





boolean som=false;





if(source==somme)
{



som=true;



int emprunt =  Integer.parseInt(pretdemand.getText());



int temp = Integer.parseInt(temps.getText());





float taux = Float.valueOf(quotient.getText());




 





sommetot.setText(Double.toString(c.pret(som, riendanssommdemande, taux, totalannee, tempstaux, moi, emprunt, totaldue, temp)));




 



 float real;



 real=c.getSommprelev();



 String paiement;



 paiement = String.valueOf(real);



rembourcement.setValueAt(paiement,i,1);



}





if(source==quit)
{



System.exit(0);



}




 



}



}




Merci

Cordialement

A bientôt
3
cs_DARKSIDIOUS Messages postés 15814 Date d'inscription jeudi 8 août 2002 Statut Membre Dernière intervention 4 mars 2013 129
16 août 2006 à 10:06
Renseigne toi sur les layout dans un premier temps (comme te l'indique le lien que tu donne) : le positionnement des contrôles dans un panel ou autre container est géré par un Layout.

Si tu veux les contrôles les uns à côté des autres, un flowLayout suffit (celui par défaut en fait), par contre, si tu les veux les uns en dessous des autres, utilise plutôt un GridBagLayout qui te permet de définir une grille dans laquelle seront placés tes composants.

L'avantage des layouts, c'est que les contrôles sont automatiquement redimensionnés selon la taille de la fenêtre.

Par contre, si ton but est de faire des feuilles non redimensionnables (des feuilles d'options en particulier), n'utilise pas de layout, pose tes contrôles aux coordonnées que tu veux en faisant :

tonContainer.SetLayout(null);
tonControle.setBounds(lesCoordonnéesDeTonControle);
tonContainer.add(tonControle, null);
0
developvbdebut Messages postés 476 Date d'inscription samedi 14 août 2004 Statut Membre Dernière intervention 2 juin 2012 1
16 août 2006 à 10:24
Re

je vais essayer

A+
0
developvbdebut Messages postés 476 Date d'inscription samedi 14 août 2004 Statut Membre Dernière intervention 2 juin 2012 1
18 août 2006 à 11:02
Bonjour tout le monde

J'aurai besoin d'aide pour completer mon code svp.

Je ne peux pas mettre getContentPane car mes composant sont en JPanel, que puis je mettre à la place svp.

Class principal.:

import java.awt.*;
import java.awt.event.*;



import javax.swing.*;
import javax.swing.event.*;
import java.awt.image.*;




 



public class Banque {





public final static int longu = 700;
 
public final static int larg = 600;





 
public static void main(String[] args)
{





  JFrame F = new JFrame("Crédit INSSET");



  F.setSize(longu,larg);
  F.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
  F.setLayout(new FlowLayout());
  F.setBackground(Color.darkGray);
  F.getContentPane().add(new Elementbanque());
  F.getContentPane().add(new Table(),BorderLayout.CENTER);
  F.getContentPane().add(new Quit());
  F.setVisible(true);





}





}





Class de composant:

import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
import java.awt.Color.*;





public class Elementbanque extends JPanel implements ActionListener



{



JTextField pretdemand;
JTextField quotient;
JTextField sommetot;
JTextField temps;



JButton somme;



public Elementbanque()



{



 GridBagLayout gridbag = new GridBagLayout();
 GridBagConstraints constraints = new GridBagConstraints();
 this.setLayout(gridbag);



 JLabel creditinsset = new JLabel("Crédit INSSET");
  
 creditinsset.setForeground(Color.red);



 Font creditinssetfont = creditinsset.getFont();
 creditinssetfont = creditinssetfont.deriveFont(Font.BOLD).deriveFont(16f);
 creditinsset.setFont(creditinssetfont);



 constraints.gridx=1;
 constraints.gridy=0;
 constraints.gridwidth=1;
 constraints.gridheight=1;
 constraints.weightx=30;
 constraints.weighty=30;
 constraints.fill = GridBagConstraints.NONE;
 constraints.anchor = GridBagConstraints.CENTER;



 gridbag.setConstraints(creditinsset, constraints);
 this.add(creditinsset);





 JLabel sommedemand = new JLabel("Somme demandé");



 this.add(sommedemand);



 constraints.gridx=0;
 constraints.gridy=1;
 constraints.gridwidth=1;
 constraints.gridheight=1;
 constraints.weightx=30;
 constraints.weighty=30;
 constraints.fill = GridBagConstraints.NONE;
 constraints.fill = GridBagConstraints.WEST;



 gridbag.setConstraints(sommedemand, constraints);
 this.add(sommedemand);





  pretdemand = new JTextField(10);



 this.add(pretdemand);



 
 constraints.gridx=1;
 constraints.gridy=1;
 constraints.gridwidth=1;
 constraints.gridheight=1;





 
 
 JLabel taux = new JLabel("Taux");
 this.add(taux);
 
 
 constraints.gridx=0;
 constraints.gridy=2;
 constraints.gridwidth=1;
 constraints.gridheight=1;



  quotient = new JTextField(10);



 this.add(quotient);
 
 
 constraints.gridx=1;
 constraints.gridy=2;
 constraints.gridwidth=1;
 constraints.gridheight=1;




 





 
 JLabel nbmois = new JLabel("période du pret");
 this.add(nbmois);





 constraints.gridx=0;
 constraints.gridy=3;
 constraints.gridwidth=1;
 constraints.gridheight=1;



  temps= new JTextField(10);
 this.add(temps);



 
 constraints.gridx=1;
 constraints.gridy=3;
 constraints.gridwidth=1;
 constraints.gridheight=1;




 




 





 somme = new JButton("somme");
 somme.addActionListener(this);
 this.add(somme);
 



 constraints.gridx=0;
 constraints.gridy=4;
 constraints.gridwidth=1;
 constraints.gridheight=1;



 JLabel dette = new JLabel("Total due");
 this.add(dette);



 
 constraints.gridx=0;
 constraints.gridy=5;
 constraints.gridwidth=1;
 constraints.gridheight=1;




 





  sommetot = new JTextField(10);
 sommetot.addActionListener(this); 
 this.add(sommetot);
 
 
 constraints.gridx=1;
 constraints.gridy=5;
 constraints.gridwidth=1;
 constraints.gridheight=1;



 
}



public void actionPerformed(ActionEvent evt) {





Calcul c = new Calcul();



Object source = evt.getSource();





int totalannee=0, moi=0, tempstaux=0;



float totaldue=0;



String riendanssommdemande="";





boolean som=false;





if(source==somme)
{



som=true;



int emprunt =  Integer.parseInt(pretdemand.getText());



int temp = Integer.parseInt(temps.getText());





float taux = Float.valueOf(quotient.getText());

sommetot.setText(Double.toString(c.pret(som, riendanssommdemande, taux, totalannee, tempstaux, moi, emprunt, totaldue, temp)));



}





}



}


Pouvez vous m'aider?

Merci

Cordialement

A bientôt
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
cs_DARKSIDIOUS Messages postés 15814 Date d'inscription jeudi 8 août 2002 Statut Membre Dernière intervention 4 mars 2013 129
18 août 2006 à 11:52
F.add tout simplement : pas besoin de récupèrer le panel interne du JPanel vu que c'est lui même !
0
developvbdebut Messages postés 476 Date d'inscription samedi 14 août 2004 Statut Membre Dernière intervention 2 juin 2012 1
18 août 2006 à 21:08
Bonsoir

Ca ne fonctionne pas

Voici l'erreur

Elementbanque.java:48: cannot find symbol
symbol  : variable F
location: class Elementbanque
        F.add(creditinsset);
        ^
Elementbanque.java:65: cannot find symbol
symbol  : variable F
location: class Elementbanque
        F.add(sommedemand);
        ^
2 errors

A +
0
developvbdebut Messages postés 476 Date d'inscription samedi 14 août 2004 Statut Membre Dernière intervention 2 juin 2012 1
19 août 2006 à 10:24
Bonjour tout le monde

Il ya de l'amelioration.

Voici la class des composants.

import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
import java.awt.Color.*;





public class Elementbanque extends JPanel implements ActionListener



{




 



JTextField pretdemand;
JTextField quotient;
JTextField sommetot;
JTextField temps;



JButton somme;



public Elementbanque()



{



 GridBagLayout gridbag = new GridBagLayout();
 GridBagConstraints constraints = new GridBagConstraints();
 this.setLayout(gridbag);



 JLabel creditinsset = new JLabel("Crédit INSSET");
  
 creditinsset.setForeground(Color.red);



 Font creditinssetfont = creditinsset.getFont();
 creditinssetfont = creditinssetfont.deriveFont(Font.BOLD).deriveFont(16f);
 creditinsset.setFont(creditinssetfont);



 constraints.gridx=1;
 constraints.gridy=0;
 constraints.gridwidth=1;
 constraints.gridheight=1;
 constraints.weightx=30;
 constraints.weighty=30;
 



 gridbag.setConstraints(creditinsset, constraints);
 this.add(creditinsset);





 JLabel sommedemand = new JLabel("Somme demandé");



 this.add(sommedemand);



 constraints.gridx=0;
 constraints.gridy=1;
 constraints.gridwidth=1;
 constraints.gridheight=1;
 constraints.weightx=30;
 constraints.weighty=30;
 



 gridbag.setConstraints(sommedemand, constraints);
 





  pretdemand = new JTextField(10);



 this.add(pretdemand);



 
 constraints.gridx=1;
 constraints.gridy=1;
 constraints.gridwidth=1;
 constraints.gridheight=1;
 constraints.weightx=30;
 constraints.weighty=30;



 gridbag.setConstraints(pretdemand, constraints);
 
 
 JLabel taux = new JLabel("Taux");
 this.add(taux);
 
 
 constraints.gridx=0;
 constraints.gridy=2;
 constraints.gridwidth=1;
 constraints.gridheight=1;
 constraints.weightx=30;
 constraints.weighty=30;



 gridbag.setConstraints(taux, constraints);



  quotient = new JTextField(10);



 this.add(quotient);
 
 
 constraints.gridx=1;
 constraints.gridy=2;
 constraints.gridwidth=1;
 constraints.gridheight=1;
 constraints.weightx=30;
 constraints.weighty=30;



 gridbag.setConstraints(quotient, constraints);




 



 
 JLabel nbmois = new JLabel("période du pret");
 this.add(nbmois);





 constraints.gridx=0;
 constraints.gridy=3;
 constraints.gridwidth=1;
 constraints.gridheight=1;



 constraints.weightx=30;
 constraints.weighty=30;



 gridbag.setConstraints(nbmois, constraints);




 




 





  temps= new JTextField(10);
 this.add(temps);



 
 constraints.gridx=1;
 constraints.gridy=3;
 constraints.gridwidth=1;
 constraints.gridheight=1;
 constraints.weightx=30;
 constraints.weighty=30;



 gridbag.setConstraints(temps, constraints);




 




 



 somme = new JButton("somme");
 somme.addActionListener(this);
 this.add(somme);
 



 constraints.gridx=0;
 constraints.gridy=4;
 constraints.gridwidth=1;
 constraints.gridheight=1;
 constraints.weightx=30;
 constraints.weighty=30;



 gridbag.setConstraints(somme, constraints);




 



 JLabel dette = new JLabel("Total due");
 this.add(dette);



 
 constraints.gridx=0;
 constraints.gridy=5;
 constraints.gridwidth=1;
 constraints.gridheight=1;
 constraints.weightx=30;
 constraints.weighty=30;



 gridbag.setConstraints(dette, constraints);




 



  sommetot = new JTextField(10);
 sommetot.addActionListener(this); 
 this.add(sommetot);
 
 
 constraints.gridx=1;
 constraints.gridy=5;
 constraints.gridwidth=1;
 constraints.gridheight=1;
 constraints.weightx=30;
 constraints.weighty=30;



 gridbag.setConstraints(sommetot, constraints);
 
}



public void actionPerformed(ActionEvent evt) {





Calcul c = new Calcul();




 



Object source = evt.getSource();





int totalannee=0, moi=0, tempstaux=0;



float totaldue=0;



String riendanssommdemande="";





boolean som=false;





if(source==somme)
{



som=true;



int emprunt =  Integer.parseInt(pretdemand.getText());



int temp = Integer.parseInt(temps.getText());





float taux = Float.valueOf(quotient.getText());

sommetot.setText(Double.toString(c.pret(som, riendanssommdemande, taux, totalannee, tempstaux, moi, emprunt, totaldue, temp)));



}





}



}


Les positions sont correcte, mon probleme est:

1.Tout est au milieu de la frame, je veux mettre tout plus ver la hauteur sans changer la position des composant.

2.Les Jtextfild sont comme ecrasé, comment faire pour les élargir.

3.Je veux ajouter une class Table, comment faire pour mettre le tableau à la suite.

Merci.

Cordialement

A bientôt.
0
developvbdebut Messages postés 476 Date d'inscription samedi 14 août 2004 Statut Membre Dernière intervention 2 juin 2012 1
20 août 2006 à 10:19
bonjour tout le monde

J'ai terminé de positionner les composants.

Je souhaiterai espacer les composant, car je trouve qu'il sont serés..

Merci

Cordialement

A bientôt
0
Rejoignez-nous