我已經使用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