我正在使用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时需要调整它。
由于
答案 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);
}