有人可以提供在IntelliJ项目中使用jfreechart的分步说明

Big*_*gsy 4 intellij-idea jfreechart

我不能让JFreeChart在IntelliJ中工作.

到目前为止我做了什么:

  • 使用Win 7,IntelliJ 13.1.4和Java 1.7
  • 我对IntelliJ比较陌生
  • 在IntelliJ中启动了一个新项目,它创建了默认目录root\out和root\src
  • 添加了我自己的目录root\lib
  • 将外部库放在.jar和.zip文件中(jcommon-1.0.23.zip,jfreechart-1.0.19.zip,junit-4.7.jar)
  • 在IntelliJ中,打开"项目结构"对话框(Ctrl + Alt + Shift + S)
  • 在左侧面板中,选择"模块"
  • 在中间小组中选择了这个项目(那里唯一的东西)
  • 在右侧面板的"Sources"选项卡上,选择"src"目录
  • 切换到"依赖关系"选项卡
  • 单击右侧的绿色"+"按钮
  • 选择"2图书馆......> Java"
  • 导航到root\lib并选择一个.zip/.jar文件
  • 弹出"检测到的根"对话框 - 我只需单击"确定"
  • 弹出"配置库"对话框 - 我给了库一个合理的名称,然后单击确定
  • 该库出现在与符号旁边,看起来像一些书,并作为下一个项目中的工具窗口中的"外部库"节点相同的符号依存关系选项卡(所以我猜这是库符号)
  • 重复其他两个库
  • 在项目的源文件中,我尝试输入"import org.jfree.*;" 但是当输入"jfree"位时为红色,当我在该行的末尾点击Enter时,该行消失.
  • 我也尝试输入"JFreeChart jFreeChart = new JFreeChart();" 但是JFreeChart是红色的,当我点击它时我没有得到导入的选项; 只创建类,接口,枚举等
  • 顺便说一句,运行jUnit测试工作正常
  • 顺便提一下,项目工具窗口中的"外部库"节点确实显示<1.7>(即JDK),但不显示jUnit,jCommon或jFreeChart.

我看到过类似的问题,答案似乎表明我所做的是正确的.我还检查了IntelliJ文档,这也表明我所做的是正确的.但是,它显然不适合我.也许我误会了什么.

有人可以帮我让JFreeChart工作吗?

谢谢

编辑:jUnit正在工作,但现在不是.D'哦!

Dav*_*ert 8

我之前从未使用过IntelliJ,但是我下载了它并立即创建了一个名为JFreeChartExample 的新项目File -> New Project.接下来,我点击File -> Project Structure...和选择的Libraries条目,然后点击+添加两个jcommon-1.0.23.jarjfreechart-1.0.19.jar(我有解压的JFreeChart分配后,我的本地文件系统上).然后在src/目录中我创建了一个新的Java文件BarChartDemo.java(见后面).现在我的项目看起来像这样:

在此输入图像描述

BarChartDemo1.java如下:

/* ==================
 * BarChartDemo1.java
 * ==================
 *
 * Copyright (c) 2005-2014, Object Refinery Limited.
 * All rights reserved.
 *
 * http://www.jfree.org/jfreechart/index.html
 *
 * Redistribution and use in source and binary forms, with or without
 * modification, are permitted provided that the following conditions are met:
 *   - Redistributions of source code must retain the above copyright
 *     notice, this list of conditions and the following disclaimer.
 *   - Redistributions in binary form must reproduce the above copyright
 *     notice, this list of conditions and the following disclaimer in the
 *     documentation and/or other materials provided with the distribution.
 *   - Neither the name of the Object Refinery Limited nor the
 *     names of its contributors may be used to endorse or promote products
 *     derived from this software without specific prior written permission.
 *
 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" 
 * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 
 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 
 * ARE DISCLAIMED. IN NO EVENT SHALL OBJECT REFINERY LIMITED BE LIABLE FOR ANY
 * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
 * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
 * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
 * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
 * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 *
 * Original Author:  David Gilbert (for Object Refinery Limited);
 * Contributor(s):   -;
 *
 * Changes
 * -------
 * 09-Mar-2005 : Version 1 (DG);
 * 11-Mar-2014 : Use new ChartFactory method (DG);
 * 25-Jun-2014 : Update to use real data (DG);
 * 
 */

import java.awt.Color;
import java.awt.Dimension;

import org.jfree.chart.ChartFactory;
import org.jfree.chart.ChartPanel;
import org.jfree.chart.JFreeChart;
import org.jfree.chart.StandardChartTheme;
import org.jfree.chart.axis.NumberAxis;
import org.jfree.chart.block.BlockBorder;
import org.jfree.chart.plot.CategoryPlot;
import org.jfree.chart.renderer.category.BarRenderer;
import org.jfree.chart.title.TextTitle;
import org.jfree.data.category.CategoryDataset;
import org.jfree.data.category.DefaultCategoryDataset;
import org.jfree.ui.ApplicationFrame;
import org.jfree.ui.RefineryUtilities;

/**
 * A simple demonstration application showing how to create a bar chart.
 */
public class BarChartDemo extends ApplicationFrame {

    private static final long serialVersionUID = 1L;

    static {
        // set a theme using the new shadow generator feature available in
        // 1.0.14 - for backwards compatibility it is not enabled by default
        ChartFactory.setChartTheme(new StandardChartTheme("JFree/Shadow",
                true));
    }

    /**
     * Creates a new demo instance.
     *
     * @param title  the frame title.
     */
    public BarChartDemo(String title) {
        super(title);
        CategoryDataset dataset = createDataset();
        JFreeChart chart = createChart(dataset);
        ChartPanel chartPanel = new ChartPanel(chart, false);
        chartPanel.setBackground(null);
        chartPanel.setFillZoomRectangle(true);
        chartPanel.setMouseWheelEnabled(true);
        chartPanel.setDismissDelay(Integer.MAX_VALUE);
        chartPanel.setPreferredSize(new Dimension(500, 270));
        setContentPane(chartPanel);
    }

    /**
     * Returns a sample dataset.
     *
     * @return The dataset.
     */
    private static CategoryDataset createDataset() {
        DefaultCategoryDataset dataset = new DefaultCategoryDataset();
        dataset.addValue(7445, "JFreeSVG", "Warm-up");
        dataset.addValue(24448, "Batik", "Warm-up");
        dataset.addValue(4297, "JFreeSVG", "Test");
        dataset.addValue(21022, "Batik", "Test");
        return dataset;
    }

    /**
     * Creates a sample chart.
     *
     * @param dataset  the dataset.
     *
     * @return The chart.
     */
    private static JFreeChart createChart(CategoryDataset dataset) {
        JFreeChart chart = ChartFactory.createBarChart(
                "Performance: JFreeSVG vs Batik", null /* x-axis label*/,
                "Milliseconds" /* y-axis label */, dataset);
        chart.addSubtitle(new TextTitle("Time to generate 1000 charts in SVG "
                + "format (lower bars = better performance)"));
        chart.setBackgroundPaint(null);
        CategoryPlot plot = (CategoryPlot) chart.getPlot();
        plot.setBackgroundPaint(null);

        // ******************************************************************
        //  More than 150 demo applications are included with the JFreeChart
        //  Developer Guide...for more information, see:
        //
        //  >   http://www.object-refinery.com/jfreechart/guide.html
        //
        // ******************************************************************

        NumberAxis rangeAxis = (NumberAxis) plot.getRangeAxis();
        rangeAxis.setStandardTickUnits(NumberAxis.createIntegerTickUnits());
        BarRenderer renderer = (BarRenderer) plot.getRenderer();
        renderer.setDrawBarOutline(false);
        chart.getLegend().setFrame(BlockBorder.NONE);
        return chart;
    }

    /**
     * Starting point for the demonstration application.
     *
     * @param args  ignored.
     */
    public static void main(String[] args) {
        BarChartDemo demo = new BarChartDemo("JFreeChart: BarChartDemo1.java");
        demo.pack();
        RefineryUtilities.centerFrameOnScreen(demo);
        demo.setVisible(true);
    }

}
Run Code Online (Sandbox Code Playgroud)

我可以在项目中右键单击此文件并运行它以获取此信息:

在此输入图像描述