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 :

Jpanel non visible dans JTabbedPane


Sujet :

AWT/Swing Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Nouveau candidat au Club
    Homme Profil pro
    Technicien Help Desk
    Inscrit en
    Juin 2012
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Technicien Help Desk
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2012
    Messages : 2
    Par défaut Jpanel non visible dans JTabbedPane
    Bonjour à tous

    Je bloque sur un problème, certes mineur, mais chiant tout de même :

    J'ai une classe Fenetre_Principale (une JFrame) qui possède un JTabbedPane avec 5 onglets (JPanel). Jusque là, tout le code des JPanel était dans ma Fenetre_Principale, j'ai donc décidé de mettre les code de chaque JPanel dans un classe héritant de JPanel. Par exemple la classe Panel_Connexion qui extends de JPanel, dans laquelle il y a plusieurs JLabel, JTextField, ect...

    Dans ma Fenetre_Principale, je fais donc un addTab(new Panel_Connexion()).
    Mon problème est que je n'es plus d'affichage du JPanel ! Le fait de l'avoir mis dans une classe ne me permet plus de l'afficher..

    J'espère être assez clair
    (Je peux poster du code ce soir vers 19h, je n'y est pas accès actuellement)

    Merci à vous pour votre aide future.

  2. #2
    Modérateur
    Avatar de dinobogan
    Homme Profil pro
    ingénieur
    Inscrit en
    Juin 2007
    Messages
    4 073
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France

    Informations professionnelles :
    Activité : ingénieur
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2007
    Messages : 4 073
    Par défaut
    Donne nous un code simplifié compilable reproduisant le problème.
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java
    Que la force de la puissance soit avec le courage de ta sagesse.

  3. #3
    Modérateur
    Avatar de XxArchangexX
    Homme Profil pro
    Conseil - Consultant en systèmes d'information
    Inscrit en
    Mars 2012
    Messages
    1 159
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France

    Informations professionnelles :
    Activité : Conseil - Consultant en systèmes d'information
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Mars 2012
    Messages : 1 159
    Par défaut
    Bonjour,

    Un petit rendez-vous ce soir alors . Parce que comme sa sans erreur si les onglets sont bien affichés mais que le panel est vide, c'est du côté de ta transformation en JPanel le soucis. Quand tu fais class bidule extend JPanel après fais tu bien :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    this.add(LeComposant);
    // ou
    this.add(lePanel ou se trouve le composant)
    Pour que le composant ou le JPanel le contenant soit ajouter dans le Jpanel qui sera affiché dans l'onglet.

    C'est l'erreur qui me vient à l'esprit.
    L'Etat est bien administré quand l'escalier de l'école est usé et que l'herbe croît sur celui du tribunal.

    Modérateur BI

  4. #4
    Nouveau candidat au Club
    Homme Profil pro
    Technicien Help Desk
    Inscrit en
    Juin 2012
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Technicien Help Desk
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2012
    Messages : 2
    Par défaut
    J'ai pu rentrer chez moi à midi, donc voici le code en avance

    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
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
     
    public static void main(String[] args) 
    {
    	Fenetre_Principale frame = new Fenetre_Principale ();
    	frame.setVisible(true);	
    }
     
    public Fenetre_Principale()
    {
    	this.setTitle("Gestion bibliothèque v1");
    	getContentPane().setLayout(new BorderLayout());
    	this.setSize(600, 400);
    	this.addWindowListener(new WindowCloser());
     
    	// Systeme d'onglet
    	JTabbedPane tabbedPane = new JTabbedPane();
    	getContentPane().add(tabbedPane, BorderLayout.CENTER);
     
    	// Panel connexion, QUI ME POSE PROBLEME
    	panel_connexion = new Panel_Connexion(connect);
    	tabbedPane.addTab("Connexion", panel_connexion);
    	panel_connexion.setLayout(new BorderLayout());
     
    	// Panel abonné
    	JPanel panel_abonne = new JPanel();
    	tabbedPane.addTab("Abonné", panel_abonne);
    	panel_abonne.setLayout(new BorderLayout());
    }
    public class Panel_Connexion extends JPanel
    {
    	private static final long serialVersionUID = 1L;
    	private JTextField text_ip;
    	private JTextField text_login;
    	private JTextField text_pwd;
    	private JButton button_connect;
    	private JButton button_deconnect;
    	private Connexion connect_1;
    	private Properties p;
     
    	Panel_Connexion(Connexion connect)
    	{
    		this.setLayout(new BorderLayout());
     
    		JLabel label_ip = new JLabel   (" Ip base Oracle :");
    		JLabel label_login = new JLabel("Login/User :");
    		JLabel label_pwd = new JLabel  (" Password :");
    		text_ip = new JTextField(10);
    		text_login = new JTextField(8);
    		text_pwd = new JTextField(8);
    		text_ip.setMaximumSize(text_ip.getPreferredSize());
    		text_login.setMaximumSize(text_login.getPreferredSize());
    		text_pwd.setMaximumSize(text_pwd.getPreferredSize());
     
    		button_connect = new JButton("Connexion");
    		Listener_connection list_2 = new Listener_connection();
    		button_connect.addActionListener(list_2);
     
    		button_deconnect = new JButton("Déconnexion");
    		Listener_deconnect list_3 = new Listener_deconnect();
    		button_deconnect.addActionListener(list_3);
     
            	Box hBox1 = Box.createHorizontalBox();
            	hBox1.add(label_ip);
            	hBox1.add(Box.createHorizontalStrut(10));
            	hBox1.add(text_ip);
     
            	Box hBox2 = Box.createHorizontalBox();
            	hBox2.add(label_login);
            	hBox2.add(Box.createHorizontalStrut(11));
            	hBox2.add(text_login);
     
            	Box hBox3 = Box.createHorizontalBox();
            	hBox3.add(label_pwd);
            	hBox3.add(Box.createHorizontalStrut(12));
            	hBox3.add(text_pwd);
     
            	Box hBox4 = Box.createHorizontalBox();
            	hBox4.add(Box.createHorizontalStrut(375));
            	hBox4.add(button_connect);
            	hBox4.add(Box.createHorizontalStrut(5));
            	hBox4.add(button_deconnect);
     
            	Box vBox = Box.createVerticalBox();
            	vBox.add(hBox1);
            	vBox.add(hBox2);
            	vBox.add(hBox3);
            	vBox.add(hBox4);
            	this.add(vBox, BorderLayout.NORTH);
    	}
    }
    Voila. Je n'arrive pas à avoir l'affichage correct de mon objet panel_connexion, alors qu'avant pas de soucis, comme pour le JPanel panel_abonne qui fontionne lui parce que son code est dans le constructeur de Fenetre_Principale.

    Merci à vous !

  5. #5
    Nouveau membre du Club
    Homme Profil pro
    Inscrit en
    Mai 2012
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Mai 2012
    Messages : 8
    Par défaut
    Je travail actuellement avec le même système que toi, une JtabbedPan a laquelle j'ajoute des classes perso' extends JPanel, et je n'ai jamais eu ce problème.

    Essaye avec JTabbedPan.add(string title, Component panel) pourquoi pas, ça ne devrais rien changer mais quitte à essayer l'impossible.
    Ensuite,

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    // Panel connexion, QUI ME POSE PROBLEME
    	panel_connexion = new Panel_Connexion(connect);
    	tabbedPane.addTab("Connexion", panel_connexion);
    	panel_connexion.setLayout(new BorderLayout());
    J'ai l'impression..qu'il manque le type à ta variable panel_connexion, est-ce dû au copier coller ? Ou bien as tu omis de nous montrer sa déclaration ? (Ou c'est une erreur de ma part). Mais a l'image de ton panel_abonne, correctement déclarer en tant que JPanel..Etc.

  6. #6
    Modérateur
    Avatar de XxArchangexX
    Homme Profil pro
    Conseil - Consultant en systèmes d'information
    Inscrit en
    Mars 2012
    Messages
    1 159
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France

    Informations professionnelles :
    Activité : Conseil - Consultant en systèmes d'information
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Mars 2012
    Messages : 1 159
    Par défaut
    Sur ta fenêtre je trouve bizarre de voir

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    public Fenetre_Principale()
    {
    }
    J'aurais vu
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    public class Fenetre_Principale
    {
         public Fenetre_Principale()
        {
        }
    }
    Ensuite sur ton JPanel tu fais
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    this.add(vBox, BorderLayout.NORTH);
    Vu le nombre de chose que tu mets je le verrai mieux en CENTER. Pour une question de taille le North est limité par rapport au center.

    autre chose dans la fenetre principale tu fais
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    // Panel connexion, QUI ME POSE PROBLEME
    	panel_connexion = new Panel_Connexion(connect);
    	tabbedPane.addTab("Connexion", panel_connexion);
    	panel_connexion.setLayout(new BorderLayout());
    mais dans ton JPanel personnel panel_connexion tu dis dejà que ton layout c'est border donc cela suffit :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    panel_connexion = new Panel_Connexion(connect);
    tabbedPane.addTab("Connexion", panel_connexion);
    je ne sais pas si avec sa, ça va mieux. Vu que je ne peux tester pour étudier plus en détail si personne ne te répond avant ce soir, je te dirai le fin mot de l'histoire vers 19h30 .

    edit : si petite question,
    Voir l'affichage correct
    c'est à dire? ton Jpanel est blanc? moche? l'onglet est bien là?
    L'Etat est bien administré quand l'escalier de l'école est usé et que l'herbe croît sur celui du tribunal.

    Modérateur BI

Discussions similaires

  1. bmp non visible dans un bouton avec texte
    Par CAMIC dans le forum Windows
    Réponses: 8
    Dernier message: 27/03/2007, 10h24
  2. Réponses: 8
    Dernier message: 04/01/2007, 10h15
  3. Redirection URL Non visible dans la barre d'adresse
    Par domileg dans le forum Langage
    Réponses: 5
    Dernier message: 04/08/2006, 09h02
  4. Composants non visible dans certaines applications
    Par chtom dans le forum Autres Logiciels
    Réponses: 4
    Dernier message: 22/03/2006, 17h33
  5. Réponses: 2
    Dernier message: 12/01/2006, 14h54

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