Interface graphique swing

cs_franfr57 Messages postés 1 Date d'inscription mardi 29 mars 2005 Statut Membre Dernière intervention 11 novembre 2006 - 11 nov. 2006 à 12:27
indiana_jules Messages postés 750 Date d'inscription mardi 9 mars 2004 Statut Membre Dernière intervention 23 décembre 2008 - 13 nov. 2006 à 13:06
Je vais vous décrire ma fenêtre que je désire faire :
nom de la fenêtre : Portail des anciens étudiants
avec 6 onglets en haut de l'écran : Gestion des options, Gestion des étudiants, Gestion des compétences, Statistiques, Envoi de mail, Validation
Dans l'onglet gestion des options :
en haut un panel avk le nom édition d'option.
Dans ce panel un champ texte et à sa droite un bouton ajouter
en sessous de ce panel un panel Liste des options.
Dans celui ci un tablo avec 2 colonnes code etlibelle option
en dessous de ce tablo un bouton supprimer option sélectionné

Pour l'instant j'ai fait ceci :
import java.awt.*;
//utilisation de la bibliothèque graphique
import javax.swing.*;
//utilisation de la bibliothèque graphique
import javax.swing.event.*;
//utilisation de la programmation événementielle


//class Etiquette
class Etiquette extends JLabel
{
 public Etiquette(String titre, Container c)
 {
  super(titre);
  c.add(this);
 }
}//Etiquette


//classe Entrée
class Entree extends JTextField
{
 public Entree(String message, Container c)
 {
  super(message,10);
  c.add(this);
 }
 /*public String contenu()
 {
  return this.getText();
 }*/
}//Entree


//classe Sortie
class Sortie extends JTextField
{
 public Sortie(String message, Container c)
 {
  super(message,15);
  setEditable(false);
  c.add(this);
 }
 /*public void afficher(String texte)
 {
  this.setText(texte);
 }*/
}//Sortie


//classe Bouton
class Bouton extends JButton
{
 public Bouton(String libelle, Container c)
 {
  super(libelle);
  setBackground(Color.gray);
  c.add(this);
 }
}//Bouton


//classe Panneau
class Panneau extends JPanel
{
 Etiquette etiquetteResultat;
 Sortie resultat;
 Bouton bouton;
 public Panneau()
 {
  setLayout(new FlowLayout());
  setBackground(Color.blue);
  etiquetteResultat = new Etiquette("résultat",this);
  resultat = new Sortie("résultat de l'opération",this);
 }
}


class Onglet extends JTabbedPane{
 public Onglet()
 {
  super();
 }
 public void ajouteOnglet(String nom, JPanel p)
 {
  JLabel titreOnglet = new JLabel(nom);
     p.add(titreOnglet);
     this.addTab(nom, p);
 }
}




class MonCadre extends JFrame{
 Onglet lesOnglets;
 JPanel pannel = new JPanel();
 //fonction place()
 private void place()//gère le positionnement et le dimensionnement du cadre
 {
  Toolkit tk = Toolkit.getDefaultToolkit();
  Dimension d = tk.getScreenSize();//dimension de l'écran
  int he, le;//hauteur et largeur de l'écran
  int hf, lf;//hauteur et largeur de la fenêtre
  int Ox, Oy;//coordonnées du coin haut gauche de la fenêtre
  he = (int)(d.getHeight());//recupère la hauteur de l'écran
  le = (int)(d.getWidth());//récupère la largeur de l'écran  hf he; lf le;//la fenêtre prend 1/4 de l'écran  Ox 0; Oy 0;//placée à 1/4 du coin haut gauche
  setLocation (Ox,Oy);//coordonnées du cadre en pixels
  setSize(lf,hf);//dimensions du cadre en pixels
 }
 private  void buildConstraints(GridBagConstraints gbc, int gx, int gy, int gw, int gh, int wx, int wy){
        gbc.gridx = gx;
        gbc.gridy = gy;
        gbc.gridwidth = gw;
        gbc.gridheight = gh;
        gbc.weightx = wx;
        gbc.weighty = wy;          
    }
 //Constructeur Mon1Cadre
  public MonCadre (String titre)
 {
   super(titre);
  place();
  setLayout(new FlowLayout());
  //setBackground(Color.green);//change la couleur du fond
  JPanel panneau_princ = new JPanel();
  
  
  lesOnglets = new Onglet();
  
  JPanel p_option = new JPanel() ;
  JPanel onglet1 = new JPanel();
  onglet1.add(p_option);
  
     lesOnglets.ajouteOnglet("Onglet 1", onglet1);
    
  this.add(lesOnglets);
  //this.add(panneau_princ);
 } 
}//MonCadre


public class Projet {
  public static void main (String [] arg)
 {
 MonCadre m;
 m = new MonCadre("Portail des anciens élèves");//création du cadre
 m.show();//le cadre est rendu visible
 }//main
}

je voudrais savoir comment faire pour que mes onglets prenne toute la fenêtre et pas une seule partie. Et je voudrais savoir pourquoi end écommentant ma ligne //setBackground(Color.green); la couleur devien verte une seconde puis l'écran redevient gris...
Et je voudrais savoir si après dans mon onglet je peut rajouter diverses panel et s'il faut que sur un panel ou je soushaite rajouter des composants, il faut que je redécrlare un FlowLayout?

Merci de votre aide

1 réponse

indiana_jules Messages postés 750 Date d'inscription mardi 9 mars 2004 Statut Membre Dernière intervention 23 décembre 2008 22
13 nov. 2006 à 13:06
Salut
si tu veux que ton panel prenne toute ta surface, il faudrait utiliser un BorderLayout et le mettre dans la zone du milieu. Du coup, il prendrait toute la place disponible.

Ensuite, tu peux rajouter dynamiquement des éléments à ces onglets, mais la façon dont tu les rajoutes dépende de l'agencemen que tu as mis en place, et ce que tu veux faire aussi bien sûr.

Voilà

le monde a des idées : la preuve, c'est qu'il y en a de mauvaises
ne comprends pas tout, mais je parle de tout : c'est ce qui compte
0
Rejoignez-nous