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中,而不创建新的框架();您找到解决方案了吗!?