2012-09-07 25 views
1

我有一些不工作代碼在這裏:添加ChartPanel到的JPanel

XYSeriesCollection dataset = new XYSeriesCollection(); 
    dataset.addSeries(series); 
    JFreeChart chart = ChartFactory.createXYLineChart(null, null, null, dataset, PlotOrientation.HORIZONTAL, true, true, true); 
    ChartPanel chartpanel = new ChartPanel(chart); 

    chartpanel.setDomainZoomable(true); 
    jPanel4.setLayout(new BorderLayout()); 
    jPanel4.add(chartpanel, BorderLayout.NORTH); 

所以,問題是用圖表jPanel4是不可見的。當我將圖表面板添加到框架並使其可見時,它就可以工作。

任何人都知道我的錯誤是什麼?

回答

4

這工作完全正常,我:

import java.awt.BorderLayout; 

import javax.swing.JFrame; 
import javax.swing.JPanel; 

import org.jfree.chart.ChartFactory; 
import org.jfree.chart.ChartPanel; 
import org.jfree.chart.JFreeChart; 
import org.jfree.chart.plot.PlotOrientation; 
import org.jfree.data.xy.XYSeries; 
import org.jfree.data.xy.XYSeriesCollection; 

public class Main { 
    public static void main(String[] args) { 
     XYSeries series = new XYSeries("asdf"); 
     for (int i = 0; i < 100; i++) 
      series.add(i, Math.random()); 
     XYSeriesCollection dataset = new XYSeriesCollection(series); 
     JFreeChart chart = ChartFactory.createXYLineChart(null, null, null, dataset, PlotOrientation.HORIZONTAL, true, true, true); 
     ChartPanel chartpanel = new ChartPanel(chart); 
     chartpanel.setDomainZoomable(true); 

     JPanel jPanel4 = new JPanel(); 
     jPanel4.setLayout(new BorderLayout()); 
     jPanel4.add(chartpanel, BorderLayout.NORTH); 

     JFrame frame = new JFrame(); 
     frame.add(jPanel4); 
     frame.pack(); 
     frame.setVisible(true); 
    } 
} 

你能爲我們提供更多的代碼?你把其他東西放入jPanel4?每個點不能有多個組件(NORTH, SOUTH, WEST, EAST, CENTER)。你把你的面板放入一個框架?

+0

我不把其他東西放在jPanel4中。我從gui生成我的jPanel4,因爲我的Form由jPanel4,一些圖像和一些jTextField組成,而不僅僅是jPanel4。我想知道,也許原因是整個GUI是自動生成的?我沒有JFrame。這是重要的整個代碼。 – Doszi89

+0

你需要有一個窗口來放入你的JPanel,它不能只顯示它自己。正如你所說,你從gui中生成這個JPanel,我認爲已經有一個JFrame。因爲你不應該使用多個JFrames,所以我建議使用一個JDialog並把你的面板放在那裏,或者把你的jpanel放到你現有的JFrame中。 – brimborium

+0

你能告訴我如何添加到框架或jpanel?因爲我把jpanel放在我的框架中,但是無法顯示我的地圖..我不會從gui生成..手動放置面板進行查看..但無法在該面板上顯示? :( –

1

做ü在JPanel中的CENTER佈局別的嘗試添加圖表中心

ChartPanel chartpanel = new ChartPanel(chart); 
chartpanel.setDomainZoomable(true); 
jPanel4.add(chartpanel, BorderLayout.CENTER); 

NORTH實際上是容器的頂部。

+0

沒有幫助,但謝謝你的回答:) – Doszi89

+0

@ Doszi89我有同樣的問題我想在我的Gui中添加圖形到jPanel而不創建新的Frame();你找到了解決方案!? –