我刚刚发现,当我将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会自动调整大小。希望这可以帮助。
我只是使用ChartPanel的方法。由于某种原因,它不能工作。代码如下: 以下是可视化结果:
我使用JFreeChart(1.0.14)中的来显示一些图表。布局由MigLayout处理,所有工作都很好。然而,我不时有奇怪的行为。当图形改变时,面板的最小大小有时也会改变。我不是在代码中设置它,而是将一切都留给Miglayout。 null
框架设计采用NetBeans进行。我尝试了所有的解决方案,比如将布局从BorderLayout更改为GridBagLayout,甚至是这里提到的那个。
我已经创建了JFreeChart,并将其放入chartpanel(按照建议)。我还将其添加到JPanel中。我正在使用JFrame。但是运行程序后我的图表是不可见的。有人能帮我吗?
问题内容: 我在(使用)中添加了一个,它很大。有什么办法可以做得更小? 问题答案: 创建时,你有几个影响结果的选项: 接受和。 指定首选和在构造。 适当时显式调用。 覆盖以动态计算大小。 选择将添加到的容器的布局。需要注意的是默认的布局是,而的是。作为一个具体示例,在构造函数中使用首选值,并在容器中同时使用,以允许动态调整大小。