2011-12-20 28 views
1

すべてのテキストを除いて、JFreeChartが機能しているようです。それはまったく表示されません、なぜ私は分かりません。私はチュートリアルサイトから得た円グラフのウィンドウの写真を添付し​​ました。ご覧のとおり、テキストは表示されません。ここでJFreeChartにテキストがないのはなぜですか?

は、上のグラフ生成されるコードです:あなたが見ることができるように

package analyzer_main; 

import java.awt.Font; 

public class FloatChart extends Composite implements Screen { 

    JFreeChart floatChart; 

    public FloatChart(Composite parent, int style){ 
     super(parent,style); 
     createContents(); 
    } 

    private void createContents(){ 
     this.setLayout(new FormLayout()); 
     floatChart = createChart(createDataset()); 
     ChartComposite chartComposite = new ChartComposite(this,SWT.NONE,floatChart, true); 
     FormData fd_chartComposite = new FormData(); 
     fd_chartComposite.left = new FormAttachment(0); 
     fd_chartComposite.right = new FormAttachment(100,0); 
     fd_chartComposite.top = new FormAttachment(0); 
     fd_chartComposite.bottom= new FormAttachment(100,0); 
     chartComposite.setLayoutData(fd_chartComposite); 
    } 

/** * Creates the Dataset for the Pie chart */ 

    private PieDataset createDataset() { 
     DefaultPieDataset dataset = new DefaultPieDataset(); 
     dataset.setValue("One", new Double(43.2)); 
     dataset.setValue("Two", new Double(10.0)); 
     dataset.setValue("Three", new Double(27.5)); 
     dataset.setValue("Four", new Double(17.5)); 
     dataset.setValue("Five", new Double(11.0)); 
     dataset.setValue("Six", new Double(19.4)); 
     return dataset; 
    } 

    private JFreeChart createChart(PieDataset dataset) { 

     JFreeChart chart = ChartFactory.createPieChart("Pie Chart Demo 1", // chart 
       // title 
       dataset, // data 
       true, // include legend 
       true, false); 

     PiePlot plot = (PiePlot) chart.getPlot(); 
     plot.setSectionOutlinesVisible(false); 
     plot.setLabelFont(new Font("SansSerif", Font.PLAIN, 12)); 
     plot.setNoDataMessage("No data available"); 
     plot.setCircular(false); 
     plot.setLabelGap(0.02); 
     return chart; 
    } 

    @Override 
    public void Load() { 
    } 

} 

を、それはかなりだ

おかげJFreeChart

編集(すみません私のTwitterのフィードは本当に長かったです)チュートリアルと同じです。

+2

イメージからJFreeChartの使用状況を診断しますか? –

+0

さて、私はコードを投稿することができましたが、チュートリアルサイトから入手できました。 – Hassan

+0

このサイトhttp://www.vogella.de/articles/EclipseJFreeChart/article.html – Hassan

答えて

3

Linux Mint 11、Eclipse、およびJFreeChart 1.0.14を使用して同じ問題が発生していました。私は1.0.13までのバックアップが問題を解決したことに気が付きました。

+0

それはトリックでした。ありがとう! – Hassan

+0

私は同じダウングレードをやってしまった....私はWindows上にいる。 .14がリリースされて以来、私はjfreechartフォーラムに何かを投稿しました。 – ssnyder

+2

同じ問題が発生しました。 jfreechart-1.0.14 jarを使用し、jcommon-1.0.17をjcommon-1.0.16に置き換えるだけです。少なくとも私は簡単なテストケースの問題を解決します。 –

1

まず、Kevin Stembridge氏によると、JDKを確認してください。 Ubuntuを使用している場合、ターミナルで次のコマンドを試してみてください。

sudo update-alternatives --config java 

あなたは、あなたのシステムおよびJDKにインストールされているJDKを見ることができますが、このプロジェクトのために使用されている(*と左で選択されています)。

OpenJDKにOracle JDKとのグラフィカルな相違があるため、Oracle JDK(パッケージjava-6-sun)とOpenJDK(openjdk-6-jdkパッケージ)を使用している場合は、Oracle JDKを選択してください。あなたのJFreeChartの動作。 Oracle JDKを選択し、Javaプロジェクトを再コンパイルし、JFreeChart内の何かが変更されているかどうかを確認します。

Javaの詳細はUbuntu Help pageを、最新のOracle JDKをインストールする場合はthis old question、またはthis pageをご確認ください。

コードについては、あなたが言ったようにチュートリアルと非常に似ています。私はEclipseとOracleのJDK 6を使用して、Ubuntuの上のあなたのコードをテストしてきた結果がこれです:

screenshot

、パネルにグラフを追加するだけcreateContents方法を編集する(とChartComposite部品のコメント、I理由このコードで、)ChartComposite何であるかを知らない:

private void createContents(){ 
     //this.setLayout(new FormLayout()); 
     floatChart = createChart(createDataset()); 
     ChartPanel chartPanel = new ChartPanel(floatChart); 
     // default size 
     chartPanel.setPreferredSize(new java.awt.Dimension(500, 270)); 
     // add it to our application 
     setContentPane(chartPanel); 
     /*ChartComposite chartComposite = new ChartComposite(this,SWT.NONE,floatChart, true); 
     FormData fd_chartComposite = new FormData(); 
     fd_chartComposite.left = new FormAttachment(0); 
     fd_chartComposite.right = new FormAttachment(100,0); 
     fd_chartComposite.top = new FormAttachment(0); 
     fd_chartComposite.bottom= new FormAttachment(100,0); 
     chartComposite.setLayoutData(fd_chartComposite);*/ 
    } 

その後、私のアドバイスは、私はあなたのスクリーンショットに見て、あなたが問題を解決する必要がありますGUIのために使用されるすべてのコードを検討することです。

質問や問題がある場合は、この回答にコメントしてください。

+0

すばらしい答えをありがとう。私はあなたが答えて以来、あなたが提案したことのいくつかを試してきました。私はあなたに知らせるでしょう... – Hassan

+0

@ハッサンよろしくお願いします。私はあなたが問題を解決することを願っています:-) –

関連する問題