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 :

JTabbedPane bug avec JTextField


Sujet :

AWT/Swing Java

  1. #1
    Nouveau membre du Club
    Homme Profil pro
    Etudiant en alternance Licence dev Web/mobile
    Inscrit en
    Mars 2015
    Messages
    26
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Etudiant en alternance Licence dev Web/mobile

    Informations forums :
    Inscription : Mars 2015
    Messages : 26
    Points : 29
    Points
    29
    Par défaut JTabbedPane bug avec JTextField
    Bonjour le forum

    Je suis étudiant, et je travaille sur un projet sur lequel je dois monter une petite interface en swing !
    Dans l'idée j'ai une class fenetre qui hérite de Jframe,
    dans cette frame je place un JTabbedPane.
    J'ai aussi 3 class qui héritent de JPanel pour faire 3 onglets sur le JTab.

    Le problème:
    J'arrive à insérer des JButton, JLabel par exemple, dans mes onglets via les construct de mes class qui héritent de JPanel.
    La ou ca bug, c'est quand j'essai de mettre un JTextField !
    Sans même essayer de l'ajouter au panel, au moment ou j'instancie un textfield, ya plus rien qui passe, et l'appli s'ouvre sur un fond gris, sans onglet.

    Je vous met ici le code de ma class fenetre, et une class onglet pour faire simple.
    Je met un textfield et un JButton, voyez qu'en retirant le textfield ca fonctionne.

    Je suis pas expert en swing c'est peut etre rien, mais merci d'avance à vous


    Class Fenetre
    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
     
     
    import javax.swing.JFrame;
    import javax.swing.JPanel;
    import javax.swing.JTabbedPane;
     
    public class Fenetre extends JFrame {
     
    	JTabbedPane t;
     
    	public Fenetre(){
    		setTitle("Application bureau");
    		setSize(400, 500);
    		setLocationRelativeTo(null);
    		setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    		setVisible(true);
     
    		t = new JTabbedPane();
     
            	t.addTab("Accueil",new Onglet());
            	t.addTab("Gestion des ligues", new Onglet());
            	t.addTab("Gestion du compte", new Onglet());
     
            	t.setTabPlacement(JTabbedPane.TOP);
            	t.setVisible(true);
     
            	add(t);
    	}
    }

    Class Onglet
    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
     
    import javax.swing.JLabel;
    import javax.swing.JPanel; 
    import javax.swing.JTextField
     
    public class Onglet extends JPanel{
    	public Onglet(){
    		setLayout(null);
     
    		JLabel lblNewLabel = new JLabel("New label");
    		lblNewLabel.setBounds(130, 133, 46, 14);
    		add(lblNewLabel);
     
    		JTextField textField = new JTextField();
    		textField.setBounds(130, 158, 86, 20);
    		add(textField);
    		textField.setColumns(10);
    	}
    }

    Voila, donc normalement si j'ai bien modifié mon code, il ne va pas fonctionner dans l'état, et en commentant les 4 lignes du JTextField, tout passe.
    J'ai pas mal cherché sur google je n'ai rein trouvé je m'en remet à vous !

    Merci d'avance

  2. #2
    Modérateur
    Avatar de wax78
    Homme Profil pro
    Chef programmeur
    Inscrit en
    Août 2006
    Messages
    4 084
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : Belgique

    Informations professionnelles :
    Activité : Chef programmeur
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2006
    Messages : 4 084
    Points : 7 995
    Points
    7 995
    Par défaut
    Euh... quel est le problème en fait ? Chez moi ça marche...

    Par contre utiliser un nulllayout c'est une mauvaise idée...

  3. #3
    Nouveau membre du Club
    Homme Profil pro
    Etudiant en alternance Licence dev Web/mobile
    Inscrit en
    Mars 2015
    Messages
    26
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Etudiant en alternance Licence dev Web/mobile

    Informations forums :
    Inscription : Mars 2015
    Messages : 26
    Points : 29
    Points
    29
    Par défaut
    Bonjour, et merci

    Bah le problème c'est que chez moi ça marche pas
    Voir l'image:


    A gauche sans le textfield, a droite avec le textfield.
    J'ai le meme résultat si je met une textarea, je viens même de m'apercevoir que c'est pareil avec une JTable mais pour ça je ne m'avance pas car il faut que je me penche plus sérieusement sur la JTable.

    Pour le layout j'ai changé plusieurs fois en espérant que ça résolve mon problème car je ne sais plus ou chercher..

  4. #4
    Modérateur
    Avatar de wax78
    Homme Profil pro
    Chef programmeur
    Inscrit en
    Août 2006
    Messages
    4 084
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : Belgique

    Informations professionnelles :
    Activité : Chef programmeur
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2006
    Messages : 4 084
    Points : 7 995
    Points
    7 995
    Par défaut
    Montres un peu ton main() ?

  5. #5
    Nouveau membre du Club
    Homme Profil pro
    Etudiant en alternance Licence dev Web/mobile
    Inscrit en
    Mars 2015
    Messages
    26
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Etudiant en alternance Licence dev Web/mobile

    Informations forums :
    Inscription : Mars 2015
    Messages : 26
    Points : 29
    Points
    29
    Par défaut
    Ah oui j'ai oublié de montrer mon main désolé !

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    import javax.swing.JFrame;
     
    public class Appli {
     
    	public static void main(String[] args) {
    		JFrame fen = new Fenetre();
    	}
    }

  6. #6
    Modérateur
    Avatar de wax78
    Homme Profil pro
    Chef programmeur
    Inscrit en
    Août 2006
    Messages
    4 084
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : Belgique

    Informations professionnelles :
    Activité : Chef programmeur
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2006
    Messages : 4 084
    Points : 7 995
    Points
    7 995
    Par défaut
    Et si tu mettais :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    SwingUtilities.invokeLater(new Runnable()
    {
    			public void run()
    			{
    				new Fenetre();
    			}
    });
    ca change ou pas ?

  7. #7
    Nouveau membre du Club
    Homme Profil pro
    Etudiant en alternance Licence dev Web/mobile
    Inscrit en
    Mars 2015
    Messages
    26
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Etudiant en alternance Licence dev Web/mobile

    Informations forums :
    Inscription : Mars 2015
    Messages : 26
    Points : 29
    Points
    29
    Par défaut
    Effectivement, ca fonctionne comme ça !
    Je peux déjà te remercier, mais puis-je te demander une petite explication histoire de comprendre le pourquoi du comment ?

  8. #8
    Expert éminent sénior
    Avatar de sinok
    Profil pro
    Inscrit en
    Août 2004
    Messages
    8 765
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Août 2004
    Messages : 8 765
    Points : 12 977
    Points
    12 977
    Par défaut
    Si tu continues à faire du Swing, c'est une chose qu'il va te falloir absolument comprendre, toutes les opérations de dessin se décident dans un unique Thread (l'event dispatch thread aka EDT) qui n'est pas le thread courant dans le main de ta classe. Il faut donc s'assurer que toute opération sur l'UI soit faire dans ce thread, d'où l'appel à SwinfUtilities.invokeLater(Runnable r).


    Pour comprendre un peu plus en profondeur, une lecture indispensable: http://gfx.developpez.com/tutoriel/j...ing-threading/

  9. #9
    Nouveau membre du Club
    Homme Profil pro
    Etudiant en alternance Licence dev Web/mobile
    Inscrit en
    Mars 2015
    Messages
    26
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Etudiant en alternance Licence dev Web/mobile

    Informations forums :
    Inscription : Mars 2015
    Messages : 26
    Points : 29
    Points
    29
    Par défaut
    Merci pour la lecture, je vais m'y intéresser

Discussions similaires

  1. Bug avec les JTextField
    Par matlabyk dans le forum NetBeans
    Réponses: 2
    Dernier message: 11/09/2012, 17h38
  2. Bug avec le test de profondeur
    Par Tellmarch dans le forum OpenGL
    Réponses: 1
    Dernier message: 17/10/2004, 00h59
  3. Bug avec requete
    Par arsgunner dans le forum ASP
    Réponses: 8
    Dernier message: 14/06/2004, 16h25
  4. [C#] Bug (?) avec la propriété TransparencyKey de la Form
    Par FrigoAcide dans le forum Windows Forms
    Réponses: 5
    Dernier message: 21/05/2004, 14h14
  5. [CR9] Bug avec les champs à valeur vide ?
    Par Djob dans le forum SAP Crystal Reports
    Réponses: 3
    Dernier message: 15/07/2003, 21h21

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