我已经使用netbeans gui生成器生成了一个gui。我有两个面板,其中一个我想显示一个chartpanel。通过NetBeans的生成的代码是:如何在由NetBeans生成的Jpanel中显示JfreeChart(ChartPanel)
private void initComponents() {
jPanel1 = new javax.swing.JPanel();
org.jdesktop.layout.GroupLayout jPanel1Layout = new org.jdesktop.layout.GroupLayout(jPanel1);
jPanel1.setLayout(jPanel1Layout);
jPanel1Layout.setHorizontalGroup(
jPanel1Layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
.add(0, 394, Short.MAX_VALUE)
);
jPanel1Layout.setVerticalGroup(
jPanel1Layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
.add(0, 294, Short.MAX_VALUE)
);
org.jdesktop.layout.GroupLayout layout = new org.jdesktop.layout.GroupLayout(this);
this.setLayout(layout);
layout.setHorizontalGroup(
layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
.add(0, 400, Short.MAX_VALUE)
.add(layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
.add(org.jdesktop.layout.GroupLayout.TRAILING, layout.createSequentialGroup()
.add(jPanel1, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
.addContainerGap()))
);
layout.setVerticalGroup(
layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
.add(0, 300, Short.MAX_VALUE)
.add(layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
.add(layout.createSequentialGroup()
.add(jPanel1, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
.addContainerGap()))
);
}
我做了什么,添加chartpanel到JPanel的是:
TimeSeriesCollection dataset = new TimeSeriesCollection();
for (int i = 0; i < 5; i++) {
TimeSeries pop = new TimeSeries("try "+i, Day.class);
pop.add(new Day(10+i, 1+i, 2004+i), 100*(i+2));
pop.add(new Day(10+1*i, 1+2+i, 2004+i+1), 150*(i+2));
pop.add(new Day(10+2*i, 1+2*i, 2004+i+2), 150*(i+3));
pop.add(new Day(10+3*i, 1+2*i, 2004+i+3), 150*(i+4));
pop.add(new Day(10+4*i, 1+2*i, 2004+i+10), 150*(i+5));
dataset.addSeries(pop);
}
TimeSeries pop = new TimeSeries("Try asjhaihsiuahsiuahiushaiushiauhsiuhasiua"+100, Day.class);
int i=5;
pop.add(new Day(1, 1+i, 2004+i), 100*(i+2));
pop.add(new Day(2, 1+2+i, 2004+i+1), 150*(i+2));
pop.add(new Day(3, 1+2*i, 2004+i+2), 150*(i+3));
pop.add(new Day(4, 1+2*i, 2004+i+3), 150*(i+4));
pop.add(new Day(5, 1+2*i, 2004+i+10), 1500*(i+5));
dataset.addSeries(pop);
JFreeChart chart = ChartFactory.createTimeSeriesChart(
"Population of CSC408 Town",
"Date",
"Population",
dataset,
true,
true,
false);
ChartPanel p = new ChartPanel(chart);
jPanel1.add(p);
但chartpanel不会显示里面的JPanel ..我能做些什么呢?你可以帮我吗?
我不是一个Swing专家,但可能是因为Netbeans的建成的GroupLayout有没有地方留给你的图表 - 所以当你添加它时,它在那里,但不可见...也许尝试'jPanel1.setLayout(new xxx)',然后再添加图表以查看它是否在那里。如果它是你知道问题的地方...不知道你可以使用什么xxx,也许只是一个默认的'新的GroupLayout()'将工作 – assylias 2012-03-13 18:35:13
我尝试ChartPanel p = new ChartPanel(图表); jPanel1.setLayout(new BorderLayout()); jPanel1.add(p,BorderLayout.CENTER);但没有:( – JackTurky 2012-03-13 19:51:07