2014-04-26 97 views
0

我有chartPanel(JFreeChart),buttonPanelerrorPanelBorderLayout問題

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); 

當我改變應用程序窗口的高度時,buttonPanel和errorPanel消失了。

當我不使用的JLabel:

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

它在應用程序窗口的高度變化的好。如何使它正確,沒有窗口縮放問題?

enter image description here

回答

2

當您添加到JFrame的默認位置是中鋒,但是因爲你現在添加到圖表的PAGE_START它不能擴展...

解決方案:

拿出來,只是說

frame.add(chartPanel); 

,爲errorPanel和ButtonPanel

只是做一個新JPanel用的BorderLayout,並把它添加到您的框架佈局的南部。 然後在那個JPanel裏添加你的ButtonPanel和ErroPanel,就像你在Jframe裏做的一樣..

0

試試這個:

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

我不能用這個代碼來縮放應用程序窗口 – Denis