Partage
  • Partager sur Facebook
  • Partager sur Twitter

JInternalFrame : Panel north & south

    16 février 2012 à 17:37:47

    Bonjour,

    Je suis confrontée à un problème depuis quelques jours :
    J'ai une JInternalFrame dans une JFrame. Je lui affecte un InternalFrameUi(BasicInternalFrameUi) personnel.
    Je surcharge deux méthodes dans ce BasicInternalFrameUi :
    createNorthPane et createSouthPane.
    Je créé un simple panel avec un background coloré (histoire de voir si tout se construit correctement).
    Le problème, c'est que le northpane s'affiche mais pas le south.

    Voici le code : Le main et l'InternalFrame
    public class testInternal extends JInternalFrame{
    	 public static void main(String[] args) {
    	       JFrame frame = new JFrame();
    	       frame.getContentPane().add(new testInternal());
    
    	        frame.setSize(900, 500);
    	        frame.setLocation(new Point(50, 50));
    	        frame.setVisible(true);
    	        frame.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
    	}
    
    	public testInternal() {
    		super();
    		this.setSize(692, 258);
    		MyInternalFrameUI myUi = new MyInternalFrameUI(this)	;
    		this.setUI(myUi);
    		this.setVisible(true);
    	}
    }
    


    Le BasicInternalFrameUI :

    public class MyInternalFrameUI extends BasicInternalFrameUI {
    
    	public MyInternalFrameUI(JInternalFrame b) {
    		super(b);
    
    	}
    
    	@Override
    	protected JComponent createNorthPane(final JInternalFrame internal) {
    		return new JpanelNorth();
    	}
    
    	@Override
    	protected JComponent createSouthPane(final JInternalFrame internal) {
    		return new JpanelSouth();
    	}
    
    
    	public static class JpanelSouth  extends JPanel{
    		public JpanelSouth(){
    			super();
    			this.setVisible(true);
    			this.setBackground(Color.BLUE);
    			this.setOpaque(true);
    		}
    	}
    
    	public static class JpanelNorth  extends JPanel{
    		public JpanelNorth(){
    			super();
    			this.setVisible(true);
    			this.setBackground(Color.YELLOW);
    			this.setOpaque(true);
    		}
    	}
    
    }
    


    Est ce que quelqu'un peut m'aider ? Merci d'avance.
    Shaina
    • Partager sur Facebook
    • Partager sur Twitter
      16 février 2012 à 17:57:19

      Difficile de t'aider parce que j'ai jamais utilisé ce genre de trucs (pour faire la même chose j'aurais utilisé un BorderLayout : frame.getContentPane().setLayout(new BorderLayout();), mais en attendant qu'un spécialiste de Swing te dépanne, essaye de mettre des tailles à tes Panel. Peut-être que le southPanel est là mais invisible puisque de taille nulle.
      • Partager sur Facebook
      • Partager sur Twitter
        16 février 2012 à 20:05:58

        J'aurais bien utilisé autre chose, mais je dois rajouter une barre de status en bas d'une InternalFrame déjà existante. Personnellement je ne connaissais pas les InternalFrame.
        Je sais qu'au pire je peux passer par un autre moyen, mais ca m’embête que la première solution ne marche pas, et que je ne sache pas pourquoi...

        [EDIT 1]:
        Autres tests effectués :
        - J'ai mis dans le ContentPane de l'InternalFrame un bouton. On voit bien le bouton et le north panel avec son background. Le panel sud apparait mais sans sa couleur ni ces composants.
        - J'ai ajouté un MouseListener au panel sud : aucun événements détectés...
        - Je change la taille (setPrefferedSize) du panel sud : sa taille change...

        Screen de la Frame

        Donc voilà... de plus en plus perdue sur les JInternalFrame...

        • Partager sur Facebook
        • Partager sur Twitter

        JInternalFrame : Panel north & south

        × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
        × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
        • Editeur
        • Markdown