Ich habe eine JFrame frame
, die eine JPanel
Panel enthält. Ich fügte auch eine JFreeChart ChartPanel cp
zum Panel hinzu. Was ich bis jetzt gemacht habe, ist eine ComponentListener
auf meinem Rahmen frame
, um auf die Größenänderung des Fensters zu reagieren.Größe JFreeChart.ChartPanel auf Maximierung Bildschirm
Hier ist mein Code-Schnipsel:
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) {}
});
...
}
Die ChartPanel
perfekt Größe verändert wird, wenn die Größe des Rahmens ändern. Aber wenn ich meinen Rahmen maximiere, ändert das Diagrammfeld seine Größe nicht! Es bleibt genau so wie es ist, bevor es maximiert wird. Wenn ich meinen Frame wieder "unmaximiere", wird das Chart-Panel maximiert und dies führt zu dem Problem, dass das Chart nicht mehr in das Chart-Panel passt. All diese Größenänderung scheint "ein Schritt hinter" zu sein ...
Kennt jemand dieses Verhalten und hilft, es zu korrigieren?
Für eine bessere Hilfe, früher ein [MCVE] oder [kurze, selbständige, korrekte Beispiel] (http://www.sscce.org/). –
Das macht ein LayoutManager. Warum erfinden Sie das Rad neu? – ControlAltDel