我有一个包含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