【问题标题】:How to insert a JFreeChart to a JPanel in a JFrame with null layout?如何在具有空布局的 JFrame 中将 JFreeChart 插入 JPanel?
【发布时间】:2016-06-07 18:53:29
【问题描述】:

当 JFrame 的布局为空时,我需要插入 JFreeChart。 有人可以帮助我吗? 我从互联网上得到了一个代码,并进行了一些修改以设置空布局(因为原始代码使用边框布局)并且它不起作用。

下面的代码不起作用

public static void main(String[] args) {
    new BarChart();
}

public BarChart() {
    dataset.addValue(1.0, fiat, speed);
    dataset.addValue(3.0, fiat, userrating);
    dataset.addValue(5.0, fiat, millage);
    dataset.addValue(5.0, fiat, safety);

    dataset.addValue(5.0, audi, speed);
    dataset.addValue(6.0, audi, userrating);
    dataset.addValue(10.0, audi, millage);
    dataset.addValue(4.0, audi, safety);

    dataset.addValue(4.0, ford, speed);
    dataset.addValue(2.0, ford, userrating);
    dataset.addValue(3.0, ford, millage);
    dataset.addValue(6.0, ford, safety);

    JFreeChart barChart = ChartFactory.createBarChart("CAR USAGE STATIStICS",
        "Category", "Score", dataset,   PlotOrientation.VERTICAL, true, true, false);
    myChart = new ChartPanel(barChart);

    jPanel1.setLayout(null);
    jPanel1.setPreferredSize(new Dimension(400, 200));
    jPanel1.add(myChart,null);

    this.add(jPanel1);
    this.setSize(600, 600);
    this.setVisible(true);
}

public ChartPanel getMyChart() {
    return myChart;
}

public void setMyChart(ChartPanel myChart) {
    this.myChart = myChart;
}

【问题讨论】:

  • 简短而长的答案是,不要使用空布局

标签: java swing jfreechart layout-manager null-layout-manager


【解决方案1】:

您的图表没有出现,因为您已将 JPanel 的布局设置为空。如果没有布局,JPanel 将无法管理子项并根据他们的首选尺寸绘制它们,这就是为什么在运行代码时什么都看不到的原因

删除这一行:

jPanel1.setLayout(null);

JPanel 将默认为FlowLayout
(您可以阅读更多内容:https://docs.oracle.com/javase/tutorial/uiswing/layout/flow.html

这将显示以下内容:


如果您必须将布局设置为 null,请阅读此帖子以获取更多信息: http://docs.oracle.com/javase/tutorial/uiswing/layout/none.html

但我建议使用任何可用的布局管理器:

https://docs.oracle.com/javase/tutorial/uiswing/layout/visual.html https://docs.oracle.com/javase/tutorial/uiswing/layout/using.html

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-08-24
    • 1970-01-01
    • 2013-02-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多