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

Interfaces Graphiques en Java Discussion :

[Internal Frame]Prob d'affichage dans une applet


Sujet :

Interfaces Graphiques en Java

  1. #1
    Membre à l'essai
    Inscrit en
    Mars 2007
    Messages
    27
    Détails du profil
    Informations forums :
    Inscription : Mars 2007
    Messages : 27
    Points : 18
    Points
    18
    Par défaut [Internal Frame]Prob d'affichage dans une applet
    Bonjour,

    Voila j'ai un problème d'affichage avec mon applet.
    Celle ci est composée d'un SplitPane, le coté gauche intégrant une arborescence JTree , le coté droit ,de l'affichage dans des onglets.

    Le problème se situe dans le coté droit.
    Ce coté droit utilise donc un TabbedPane composé de 2onglets.
    Dans le premier onglet de ce TabbedPane,qui est un jpanel, j'affiche qqs label avec du texte (par exemple le nom du fichier sélectionné dans l'arborescence), un Jtable et 3 boutons.
    J'aimerais ouvrir au départ de ces boutons des internal frames.
    Problèmes, j'arrive bien a ouvrir une internal frame, mais impossible de lui spécifier sa taille, son emplacement de départ, et surtout cette dernière apparait derriere les autre éléments...

    Voici ce que je spécifie à sa création :

    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
    Button1.addActionListener(new ActionListener()
    	{
    		public void actionPerformed(ActionEvent e)
    		{
    			JInternalFrame frame = new JInternalFrame(("Internal"),true,true,true,true);
    			jPanel.add(frame);
    			frame.setLocation(50,50);
    			frame.setSize(200, 200);
    			frame.setBackground(Color.white);	
    			frame.moveToFront();
    			frame.setVisible(true);
    			frame.setResizable(false);
    			frame.setMaximizable(false);
    			frame.setIconifiable(true);
    			frame.setClosable(true);
    		}
    	});
    Quelqu'un aurait il une idée ??
    Cela viendrait-il du fait que c'est intégré au jpanel qui constitue le premier onglet ??

    Oo je crois que je vien de trouver mon erreur en faisant des test, j'ai l'impression que mon internal frame essaye en fait de s'ouvrir dans l'emplacement ou est situé le bouton. Je m'explique, pour placer les composants j'ai utilisé le gridbaglayout.

    Comment faire alors pour que l'internal s'affiche devant la gestion gridbag ??

    Je vous remercie d'avance ^^

  2. #2
    Membre à l'essai
    Inscrit en
    Mars 2007
    Messages
    27
    Détails du profil
    Informations forums :
    Inscription : Mars 2007
    Messages : 27
    Points : 18
    Points
    18
    Par défaut
    Alors voilà j'ai réussi à afficher mon internal frame, maintenant persiste deux problèmes que je trouve assez gênant.

    Premièrement je ne peux pas redimensionner l'internal frame ??
    J'ai pourtant bien spécifié la taille soit par la propriétés setBounds, soit directement par la propriétés setSize... Pourtant cela ne change en rien du tout le resultat.

    Deuxième problème, lorsque je minimise mon internal frame, et bien l'icone n'apparait pas.
    Elle est pourtant la car si je clic dans le bas de mon applet cette derniere revient à l'écran...
    Y a t'il qqch qui spécifie une taille à l'icone ??

    Merci d'avance

  3. #3
    Membre régulier
    Profil pro
    Étudiant
    Inscrit en
    Mai 2006
    Messages
    104
    Détails du profil
    Informations personnelles :
    Âge : 34
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2006
    Messages : 104
    Points : 119
    Points
    119
    Par défaut
    salut ! je sais pas si je te serai très utile mais pour les boutons c'est presque normal, j'avais le même pb avec le look and feel du système mais on dirait que c'est corrigé depuis la Jdk 1.6

  4. #4
    Membre à l'essai
    Inscrit en
    Mars 2007
    Messages
    27
    Détails du profil
    Informations forums :
    Inscription : Mars 2007
    Messages : 27
    Points : 18
    Points
    18
    Par défaut
    Je suis passé au JDK 6 , pour tester et aussi pour retirer toute une série de warning découlant d'un bug dans le JDK 5.

    Cela ne change malheureusement en rien mon problème.

    Je crois que cela vien plutot de ma manière de gérer les objets au niveau du gridbaglayout.
    Si quelqu'un si connaissant passait par la...

    Merci quand même pour l'idée

  5. #5
    Membre régulier
    Profil pro
    Étudiant
    Inscrit en
    Mai 2006
    Messages
    104
    Détails du profil
    Informations personnelles :
    Âge : 34
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2006
    Messages : 104
    Points : 119
    Points
    119
    Par défaut
    mais ton internalframe, elle est pas à même ton composant, si ? parce que les internal frames doivent etre placées dans un (je suis pu sûr du nom ^^) jdesktoppane sinon c'est sûr que tu pourras rien en faire
    pour ce qui est des boutons et de la Jdk, ben avec la 1.5 et sous windows avec le lookandfeel système et des skins un peu zarb (winosX par ex) j'avais quelques problèmes de boutons qui se superposaient mais, même si c'est pas toujours l'idéal, les boutons ne se chevauchent plus et ont une apparence 'système'...
    voilà pour la petite histoire

  6. #6
    Membre à l'essai
    Inscrit en
    Mars 2007
    Messages
    27
    Détails du profil
    Informations forums :
    Inscription : Mars 2007
    Messages : 27
    Points : 18
    Points
    18
    Par défaut
    Ouaip l'internal frame doit bien faire partie d'un container, donc par exemple un JDesktopPane.
    J'en définit donc un dans l'onglet ou s'affiche les frames internes.
    Je sais déjà les utiliser (rajouter un bouton, du texte,etc...) mais le problème c'est que je ne parviens pas à les redimensionner et faire apparaitre leur icone dans le bas de l'onglet.
    La frame occupe constamment l'ensemble du JDesktopPane , et lors de la minimisation, elle passe derrière le le reste de mes éléments je suppose (élement qui sont disposé par gridbaglayout).

    Maintenant je vais dire que je n'ai pas actuellement poussé encore plus loin mes investigations, j'été occupé à intégrer un JXTreeTable dans mon autre onglet, et ca n'a pas été une mince affaire pour comprendre le composant ^^.
    Si je trouve une solution au niveau de mes frames, je viendrai poster,
    en attendant je reste ouvert à tous ^^

    Merci beaucoup

  7. #7
    Membre à l'essai
    Inscrit en
    Mars 2007
    Messages
    27
    Détails du profil
    Informations forums :
    Inscription : Mars 2007
    Messages : 27
    Points : 18
    Points
    18
    Par défaut
    Je profite d'avoir résolu certains de mes autres problèmes et d'être en attente d'une solution pour un nouveau (eh oui, à chaque fois que je sort d'un soucis c'est pour retomber dans un autre ^^, normal vu qu'a chaque fois je me dirige vers quelque chose de nouveau pour moi )

    Donc voila une partie du code qui à l'air de poser problème.

    Il concerne la création de l'onglet, les éléments que j'ajoute..etc...
    Ne prétez pas attention au texte des labels

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
     public JDesktopPane Tabbed1 = new JDesktopPane();
    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
     
    {
    Tabbed1.setLayout(new BorderLayout());
     
    	//définition des différents labels
    	jLabel1 = new JLabel();
    	jLabel1.setText("Test:");
    	jLabel2 = new JLabel();
    	jLabel2.setText("Test2 :");
    	jLabel3 = new JLabel();
    	jLabel3.setText("ffjf");
    	jLabel4 = new JLabel();
    	jLabel4.setText("gftuf");
     
    	jButton1 = new JButton();
    	jButton1.setText("test");
     
    	jButton1.addActionListener(new ActionListener()
    	{
    		public void actionPerformed(ActionEvent e)
    		{
    			JInternalFrame jframe = new     JInternalFrame(("Internal"),false,true,false,true);
    			jframe.setBackground(Color.white);
     
    			jframe.setBounds(50, 50, 100, 100);
    			Tabbed1.add(jframe,BorderLayout.CENTER);
    			jframe.setVisible(true);
    			jframe.moveToFront();	
     
    		}
    	});
    	Tabbed1.add(getJPanel1(),BorderLayout.CENTER);
    }
    Ci dessous la méthode getJPanel1() qui renvoie un panel qui gère l'emplacement des objets par gridbaglayout
    Les objets listé ci dessus (labels et bouton) sont donc dans le panel renvoyé par getJPanel1();

    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
     
    private JPanel getJPanel1()
      {
    	GridBagConstraints gridBagConstraints7 = new GridBagConstraints();
    	gridBagConstraints7.gridx = 1;
    	gridBagConstraints7.anchor = GridBagConstraints.NORTHWEST;
    	gridBagConstraints7.gridy = 1;
     
    	GridBagConstraints gridBagConstraints6 = new GridBagConstraints();
    	gridBagConstraints6.gridx = 1;
    	gridBagConstraints6.anchor = GridBagConstraints.NORTHWEST;
    	gridBagConstraints6.ipadx = 162;
    	gridBagConstraints6.gridy = 0;
     
    	GridBagConstraints gridBagConstraints3 = new GridBagConstraints();
    	gridBagConstraints3.gridx = 2;
    	gridBagConstraints3.anchor = GridBagConstraints.NORTHEAST;
    	gridBagConstraints3.insets = new Insets(0, 0, 0, 0);
    	gridBagConstraints3.gridy = 0;
     
    	GridBagConstraints gridBagConstraints1 = new GridBagConstraints();
    	gridBagConstraints1.gridx = 0;
    	gridBagConstraints1.anchor = GridBagConstraints.NORTHWEST;
    	gridBagConstraints1.gridy = 0;
     
    	GridBagConstraints gridBagConstraints = new GridBagConstraints();
    	gridBagConstraints.gridx = 0;
    	gridBagConstraints.anchor = GridBagConstraints.NORTHWEST;
    	gridBagConstraints.gridy = 1;
     
    	jPanel1 = new JPanel();
    	jPanel1.setLayout(new GridBagLayout());
    	jPanel1.add(jLabel1, gridBagConstraints);
    	jPanel1.add(jLabel2, gridBagConstraints1);
    	jPanel1.add(jButton1, gridBagConstraints3);
    	jPanel1.add(jLabel3, gridBagConstraints6);
    	jPanel1.add(jLabel4, gridBagConstraints7);
     
    	return jPanel1;  
      }
    A mon avis c'est le fait d'intégrer au JDesktopPane Tabbed1 le panel avec les divers éléments et l'internal frame qui crée le recouvrement.
    J'ai testé pas mal de solution (au point que je ne sais plus exactement lesquelles), par exemple intégrer le JInternalFrame au panel contenant les boutons, panel que j'avais dès lors changé en desktop (vu qu'a priori il est absolument nécessaire d'avoir un container pour faire tourner les internal frames)

    Voila... Si ca peut aider quelqu'un à trouver une solution à mon problème, j'en serai très heureux.

    Merci à vous

Discussions similaires

  1. Probleme d'affichage dans une applet
    Par lensois02 dans le forum Débuter avec Java
    Réponses: 1
    Dernier message: 14/05/2010, 11h00
  2. problème d'affichage dans une applet
    Par ~~ Lu ~~ dans le forum Applets
    Réponses: 1
    Dernier message: 09/07/2008, 11h01
  3. Affichage Webcam dans une Applet
    Par ionix dans le forum Applets
    Réponses: 4
    Dernier message: 15/01/2006, 19h57
  4. prob d'affichage d'une Icone dans un JButton
    Par Zoroastre dans le forum AWT/Swing
    Réponses: 7
    Dernier message: 14/01/2006, 13h57
  5. Affichage d'une Applet Jbuilder dans IE
    Par DeveloppeurIndependant dans le forum Applets
    Réponses: 7
    Dernier message: 08/07/2004, 10h22

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