我刚刚发现,当我将ChartPanel添加到JFrame时,随着JFrame拖动的变大或变小,ChartPanel将调整大小以适合框架。但是,当我将ChartPanel添加到JPanel时,随着JFrame调整大小,JPanel的大小(width和height)会更改以适合JFrame。但是,ChartPanel仅保留其尺寸,从而使扩大的JPanel留有很多空白空间。如何在GUI中使用ChartPanel的容器调整大小?

这是我的示例代码:


这种情况下,图表使用JFrame调整大小



ChartPanel chartPanel = new ChartPanel(createWhateverChart());
JFrame frame = new JFrame();
frame.add(chartPanel);




在这种情况下,我首先将ChartPanel添加到JPanel,以便于管理和更新图表,但ChartPanel不会使用JPanel / JFrame调整大小。



ChartPanel chartPanel = new ChartPanel(createWhateverChart());
JPanel panel = new JPanel("Who cares");
panel.add(chartPanel, BorderLayout.CENTER);
JFrame frame = new JFrame();
frame.add(panel);

最佳答案

试试我的代码,它可以正常工作。

注意 :

我有一帧包含一个panelMain,panelMain包含一个subPanel,而subPanel包含ChartPanel。

frame.setLayout(new BoxLayout(frame.getContentPane(), BoxLayout.Y_AXIS));
JPanel panelMain = new JPanel(new GridLayout(0,2));
ChartPanel chartPanel = createChart();
JPanel subPanel = new JPanel(new BorderLayout());
subPanel.setBorder(BorderFactory.createTitledBorder("Consommation"));
subPanel.setPreferredSize(new Dimension(400, 200));
subPanel.add(chartPanel);


panelMain.add(subPanel);
frame.add(panelMain);
frame.pack();
frame.setLocationRelativeTo(null);
frame.setVisible(true);


现在,当您调整窗口应用程序的大小时。您的chartPanel会自动调整大小。希望这可以帮助。

09-28 01:44