Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/342.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 向JPanel添加图表面板_Java_Netbeans_Jpanel_Jfreechart - Fatal编程技术网

Java 向JPanel添加图表面板

Java 向JPanel添加图表面板,java,netbeans,jpanel,jfreechart,Java,Netbeans,Jpanel,Jfreechart,我这里有一些不起作用的代码: XYSeriesCollection dataset = new XYSeriesCollection(); dataset.addSeries(series); JFreeChart chart = ChartFactory.createXYLineChart(null, null, null, dataset, PlotOrientation.HORIZONTAL, true, true, true); ChartPanel ch

我这里有一些不起作用的代码:

    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不可见。当我将图表面板添加到框架并使其可见时,它就工作了


有人知道我犯了什么错吗

你在jpanel的
中心
布局中是否有任何内容,或者尝试在中心添加图表

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

北部实际上是集装箱的顶部。

这对我来说非常好:

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);
    }
}
导入java.awt.BorderLayout;
导入javax.swing.JFrame;
导入javax.swing.JPanel;
导入org.jfree.chart.ChartFactory;
导入org.jfree.chart.ChartPanel;
导入org.jfree.chart.JFreeChart;
导入org.jfree.chart.plot.PlotOrientation;
导入org.jfree.data.xy.XYSeries;
导入org.jfree.data.xy.XYSeriesCollection;
公共班机{
公共静态void main(字符串[]args){
XYSeries系列=新的XYSeries(“asdf”);
对于(int i=0;i<100;i++)
series.add(i,Math.random());
XYSeriesCollection数据集=新的XYSeriesCollection(系列);
JFreeChart chart=ChartFactory.createXYLineChart(null,null,null,dataset,PlotOrientation.HORIZONTAL,true,true,true);
ChartPanel ChartPanel=新的ChartPanel(图表);
chartpanel.setDomainZoomable(真);
JPanel jPanel4=新的JPanel();
setLayout(newborderlayout());
jPanel4.add(chartpanel,BorderLayout.NORTH);
JFrame=新JFrame();
frame.add(jPanel4);
frame.pack();
frame.setVisible(true);
}
}

你能给我们提供更多的代码吗?您是否将其他内容放入
jPanel4
?每个点中不能有多个组件(
北、南、西、东、中)。您是否将面板放入框架中?

我没有在jPanel4中放入任何其他内容。我从gui生成jPanel4,因为我的表单由jPanel4、一些图像和一些jTextFields组成,而不仅仅是jPanel4。我想知道,可能是因为整个gui是自动生成的?我没有JFrame。这就是重要的全部代码。你需要有一个窗口来放置你的JPanel,它不能只显示自己。正如您所说,您从gui中生成这个JPanel,我认为已经有了一个JFrame。由于您不应该使用多个JFrame,我建议您使用JDialog并将面板放在其中,或者将您的jpanel放在已经存在的JFrame中的某个位置。您能告诉我如何添加到frame或jpanel中吗?因为我把jpanel放在我的框架中,但无法显示我的地图。。我不从gui生成..手动放置面板以供查看。。但无法在面板上显示?:(@Developer最后7行将
chartPanel
放入一个
JPanel
,该面板被添加到
JFrame
中。这不正是你要问的吗?如果它没有显示,你的JPanel可能不会显示。试着放入一个
JLabel
,并插入一些文本,看看是否显示出来。如果没有,你就有问题了r布局。@Doszi89我有同样的问题,我想在Gui中将图形添加到jPanel中,而不创建新的框架();您找到解决方案了吗!?