我刚刚发现,当我将ChartPanel添加到JFrame时,随着JFrame的拖动或放大或缩小,ChartPanel都会调整大小以适合该框架。但是,当我将ChartPanel添加到JPanel时,随着JFrame调整大小,JPanel的大小(width和height)会更改以适合JFrame。但是,ChartPanel仅保留其尺寸,从而使扩大的JPanel留有很多空白空间。如何在GUI中使用ChartPanel的容器调整大小?
这是我的示例代码:
ChartPanel chartPanel = new ChartPanel(createWhateverChart()); JFrame frame = new JFrame(); frame.add(chartPanel);
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会自动调整大小。希望这可以帮助。