2014-04-26 9 views
0

J'ai (JFreeChart), buttonPanel et errorPanel.Problèmes BorderLayout

frame.add(chartPanel, BorderLayout.PAGE_START); 
    JPanel buttonPanel = new JPanel(new FlowLayout(FlowLayout.CENTER)); 
    errorPanel = new JLabel("Error String"); 
    errorPanel.setHorizontalAlignment(JLabel.CENTER); 
    frame.getContentPane().add(buttonPanel, BorderLayout.CENTER); 
    frame.getContentPane().add(errorPanel, BorderLayout.SOUTH); 

Lorsque je modifie la hauteur de la fenêtre d'application, buttonPanel et errorPanel ont disparu.

Quand je ne me JLabel:

frame.add(chartPanel); 
    JPanel buttonPanel = new JPanel(new FlowLayout(FlowLayout.CENTER)); 
    frame.getContentPane().add(buttonPanel, BorderLayout.SOUTH); 

il est Okey dans le changement de la hauteur de la fenêtre d'application. Comment faire les choses correctement et ne pas avoir de problèmes avec le zoom de la fenêtre?

enter image description here

Répondre

2

Lorsque vous ajoutez à JFrame l'emplacement par défaut est le centre mais puisque vous ajoutez au tableau à la PAGE_START maintenant sa non évolutive ...

solution

:

sortir et dire que

frame.add(chartPanel); 

et pour la errorPanel et panneauBoutons

juste faire un nouveau JPanel avec BorderLayout et l'ajouter au sud de votre mise en page de cadre. Puis à l'intérieur de ce JPanel ajouter votre ButtonPanel et ErroPanel tout comme ce que vous avez fait dans votre Jframe ..

0

Essayez ceci:

frame.addComponentListener(new ComponentListener(){ 

    public void componentResized(ComponentEvent e) { 
     frame.pack(); 
    } 

    public void componentMoved(ComponentEvent e) {} 
    public void componentShown(ComponentEvent e) {} 
    public void componentHidden(ComponentEvent e) {} 
}); 
+0

Je ne peux pas mettre à l'échelle la fenêtre de l'application en utilisant ce code – Denis

Questions connexes