IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

AWT/Swing Java Discussion :

utiliser classe onglet java


Sujet :

AWT/Swing Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Inscrit en
    Janvier 2006
    Messages
    716
    Détails du profil
    Informations forums :
    Inscription : Janvier 2006
    Messages : 716
    Par défaut utiliser classe onglet java
    Bonjour,
    j'ai fait une classe onglet java avec une foction pour ajouter des onglet, mais je rencontre un problème lorsque je souhaite l'utiliser
    VOici mon code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
     
    class Onglet extends JTabbedPane{
    	public Onglet()
    	{
    		super();
    	}
    	public void ajouteOnglet(String nom, JPanel p, Onglet o)
    	{
    		JLabel titreOnglet1 = new JLabel(nom);
    	    p.add(titreOnglet1);
    	    p.setPreferredSize(new Dimension(300, 80));
    	    o.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/2; lf = le/2;//la fenêtre prend 1/4 de l'écran
    		Ox = le/3; Oy = he/3;//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
    	}
    	//Constructeur Mon1Cadre
     	public MonCadre (String titre)
    	{
    		super(titre);
    		place();
    		//setBackground(Color.green);//change la couleur du fond
    		LesOnglets = new Onglet();
     
    		JPanel onglet1 = new JPanel();
    	    ajouteOnglet("Onglet 1", onglet1, LesOnglets);
     
    		pannel.add(LesOnglets);
    		add(pannel);
    	}	
    }//MonCadre
     
    public class Projet {
     	public static void main (String [] arg)
    	{
    	MonCadre m;
    	m = new MonCadre("Gestion des anciens élèves");//création du cadre
    	m.show();//le cadre est rendu visible
    	}//main
    }
    J'obtient l'erreur : The method ajouteOnglet(String, JPanel, Onglet) is undefined for the type MonCadre

    pourtant je n'utilise as la fonction sur le type moncadre ?

    Merci de votre aide

  2. #2
    Membre chevronné Avatar de schniouf
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Décembre 2003
    Messages
    382
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : Luxembourg

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Décembre 2003
    Messages : 382
    Par défaut
    Citation Envoyé par franfr57
    Bonjour,
    j'ai fait une classe onglet java avec une foction pour ajouter des onglet, mais je rencontre un problème lorsque je souhaite l'utiliser
    VOici mon code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
     
    class Onglet extends JTabbedPane{
        public Onglet()
        {
            super();
        }
        public void ajouteOnglet(String nom, JPanel p, Onglet o)
        {
            JLabel titreOnglet1 = new JLabel(nom);
            p.add(titreOnglet1);
            p.setPreferredSize(new Dimension(300, 80));
            o.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/2; lf = le/2;//la fenêtre prend 1/4 de l'écran
            Ox = le/3; Oy = he/3;//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
        }
        //Constructeur Mon1Cadre
         public MonCadre (String titre)
        {
            super(titre);
            place();
            //setBackground(Color.green);//change la couleur du fond
            LesOnglets = new Onglet();
     
            JPanel onglet1 = new JPanel();
            ajouteOnglet("Onglet 1", onglet1, LesOnglets);
     
            pannel.add(LesOnglets);
            add(pannel);
        }    
    }//MonCadre
     
    public class Projet {
         public static void main (String [] arg)
        {
        MonCadre m;
        m = new MonCadre("Gestion des anciens élèves");//création du cadre
        m.show();//le cadre est rendu visible
        }//main
    }
    J'obtient l'erreur : The method ajouteOnglet(String, JPanel, Onglet) is undefined for the type MonCadre

    pourtant je n'utilise as la fonction sur le type moncadre ?

    Merci de votre aide
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ajouteOnglet("Onglet 1", onglet1, LesOnglets);
    est appelé dans ta classe MonCadre, et elle n'existe pas ! Ce n'est pas parce que 2 classes sont dans le même fichier que tu peux accéder directement d'une classe à l'autre. Un conseil, utilise un fichier par classe.

    Ta méthode pourrait quand même fonctionner si Onglet était une classe interne à MonCadre (voir http://www.oberle.org/java-doc-classesinternes.html), mais je pense que ce n'est pas la bonne solution ici.

    De plus, tu te mélanges les pinceaux en passant LesOnglets en argument alors qu'il devrait être l'appeleur de la méthode.
    Observe les modifications :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    class Onglet extends JTabbedPane{
        public Onglet()
        {
            super();
        }
        public void ajouteOnglet(String nom, JPanel p)
        {
            JLabel titreOnglet1 = new JLabel(nom);
            p.add(titreOnglet1);
            p.setPreferredSize(new Dimension(300, 80));
            this.addTab(nom, p);
        }
    }
    et

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    class MonCadre extends JFrame {
    ...
       public MonCadre( String titre ) {
     
          LesOnglets = new Onglet();
          JPanel onglet1 = new JPanel();
          LesOnglets.ajouteOnglet("Onglet 1", onglet1);
     
          pannel.add(LesOnglets);
          this.getContentPane().add(pannel);
       }
    ...
    }
    J'espère que t'as compris ! Et essaie de respecter les conventions de nommage (nom de variables commencent par une minuscule).

    ++

  3. #3
    Membre éclairé
    Inscrit en
    Janvier 2006
    Messages
    716
    Détails du profil
    Informations forums :
    Inscription : Janvier 2006
    Messages : 716
    Par défaut
    Merci je crois que c'est plus clair!
    Je vais essayer de suivre les conventions!

    Merci beaucoup

  4. #4
    Membre éclairé
    Inscrit en
    Janvier 2006
    Messages
    716
    Détails du profil
    Informations forums :
    Inscription : Janvier 2006
    Messages : 716
    Par défaut
    je voudrais que mes onglet soit dans ma fenetre en prenant toute la place mais en mettant les longeur et hauteur de ma fenetre, cela ne colle pas...
    et que si l'utilisateur redimentionne la fenetre que l'onglet se redimensionne aussi

    Cependant je ne vois pas comment m'y prendre

    Merci de votre aide

  5. #5
    Membre chevronné Avatar de schniouf
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Décembre 2003
    Messages
    382
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : Luxembourg

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Décembre 2003
    Messages : 382
    Par défaut
    Citation Envoyé par franfr57
    je voudrais que mes onglet soit dans ma fenetre en prenant toute la place mais en mettant les longeur et hauteur de ma fenetre, cela ne colle pas...
    et que si l'utilisateur redimentionne la fenetre que l'onglet se redimensionne aussi

    Cependant je ne vois pas comment m'y prendre

    Merci de votre aide
    Pour cela tu dois mettre ton composant au centre d'un BorderLayout.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    class MonCadre extends JFrame{
        Onglet LesOnglets;
        JPanel pannel = new JPanel( new BorderLayout() );
    ...
    //Constructeur Mon1Cadre
         public MonCadre (String titre)
        {
            super(titre);
            place();
            //setBackground(Color.green);//change la couleur du fond
            LesOnglets = new Onglet();
            
            JPanel onglet1 = new JPanel();
            ajouteOnglet("Onglet 1", onglet1, LesOnglets);
            
            pannel.add(LesOnglets, BorderLayout.CENTER);
            add(pannel);
        }
    voir http://java.sun.com/docs/books/tutor...ut/border.html
    (comment utiliser les layout : http://java.sun.com/docs/books/tutor...ayoutlist.html)

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 20
    Dernier message: 09/04/2020, 17h02
  2. [C#] Utiliser une classe de JAVA dans C#
    Par Mickael23 dans le forum C#
    Réponses: 4
    Dernier message: 22/05/2009, 19h44
  3. [JAVA XML] : utilisation class générées par JAXB
    Par Michalak dans le forum Persistance des données
    Réponses: 0
    Dernier message: 31/10/2008, 15h43
  4. probleme utilisation classe java dans jsp
    Par prosper76 dans le forum Servlets/JSP
    Réponses: 1
    Dernier message: 11/10/2006, 09h31
  5. Réponses: 7
    Dernier message: 21/06/2005, 17h04

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo