我有一個包含JPanel
面板的JFrame frame
。我還爲面板添加了一個JFreeChart ChartPanel cp
。我到目前爲止所做的是在我的框架frame
上使用ComponentListener
來對調整窗口大小做出反應。在最大化屏幕上調整JFreeChart.ChartPanel的大小
這是我的代碼片斷:
private void initialize() throws ParseException {
frame = new JFrame();
frame.addComponentListener(new ComponentListener() {
@Override
public void componentResized(ComponentEvent e) {
ChartPanel cp = (ChartPanel)panel.getComponents()[0];
cp.setPreferredSize(new java.awt.Dimension(panel.getWidth(), panel.getHeight()));
frame.repaint();
cp.repaint();
}
@Override
public void componentMoved(ComponentEvent e) {}
@Override
public void componentShown(ComponentEvent e) {}
@Override
public void componentHidden(ComponentEvent e) {}
});
...
}
改變幀的大小時,ChartPanel
是完全調整大小。但是當我最大化我的框架時,圖表面板不會改變它的大小!它與最大化之前的時刻保持不變。因此,當我再次「取消最大化」我的框架時,圖表面板會最大化,這會導致問題,圖表不再適合圖表面板。所有這些調整大小的東西似乎是「落後」...
有沒有人知道這種行爲,並幫助如何糾正它?
爲了更好地提供幫助,請發佈[MCVE]或[簡短自包含正確示例](http://www.sscce.org/)。 –
這是LayoutManager的功能。你爲什麼重新發明輪子? – ControlAltDel