将Netfans GUI构建器中的Jfreechart放入面板中

时间:2015-12-16 18:30:33

标签: java swing user-interface netbeans

我正在使用Netbeans GUI构建器将面板放在Jframe中,其中面板的大小由我在GUI构建器中设置。我想在此面板中嵌入图表。使用以前SO线程的答案,我可以实现以下行为:

ChartPanel p = new ChartPanel(chart);
jPanel1.setLayout(new java.awt.BorderLayout());
jPanel1.setPreferredSize(new Dimension(400, 200));    
jPanel1.add(p, BorderLayout.CENTER);
jPanel1.validate();

我使用setPreferredSize作为更改绘图大小的方法。否则,与我在面板上设置的实际尺寸相比,我的情节很大。如何从netbeans GUI中创建的面板维度setPreferredSize推断出正确的大小?现在,我必须手动传递Dimension,每当我弄乱UI时需要调整它。

由于

1 个答案:

答案 0 :(得分:0)

对我来说有用的是继承ChartPanel并给它一个没有参数的构造函数,只是将null传递给超类。

public class MyChartPanel extends ChartPanel {

    public MyChartPanel() {
        super(null);
    }
}

编译文件,然后您就可以将类从“项目”窗口拖到GUI设计器并更改gui面板中的大小。

也可以在“项目”窗口中选择文件,然后右键单击弹出菜单并选择Tools - > Add to Palette ...将其永久添加到GUI Designer面板中,以便于重复使用。

在我的netbeans生成的JFrame类的构造函数中,我在initComponents()返回后为面板设置了图表。

public MyJFrame() {
    initComponents();
    CategoryDataset dataset = createDataset(); // example custom application specific function for creating a dataset
    JFreeChart chart = createChart(dataset); // example custom application specific function for creating JFreeChart
    this.myChartPanel1.setChart(chart);
}