当前位置: 首页 > 面试题库 >

Java如何更改JFreeChart的大小

锺离晗昱
2023-03-14
问题内容

我在(使用)中添加了JFreeChart一个,它很大。有什么办法可以做得更小?JPanelBorderLayout

public void generateChart()
{
    DefaultCategoryDataset dataset = new DefaultCategoryDataset();

    //set the values of the chart
    for(int i=0; i<8; i++)
    {
        dataset.setValue(income_array[i], "Income",
            Double.toString(percent_array[i]));
    }

    JFreeChart chart = ChartFactory.createBarChart(
        "Required Annual Income for a Variety of Interest Rates",
        "Percent", "Income", dataset, PlotOrientation.VERTICAL,
        false,true, false);
    ChartPanel cp = new ChartPanel(chart);

    chart.setBackgroundPaint(Color.white);
    chart.getTitle().setPaint(Color.black); 
    CategoryPlot p = chart.getCategoryPlot(); 
    p.setRangeGridlinePaint(Color.blue); 

    //cp.setMaximumDrawHeight(5);
    //cp.setMaximumDrawWidth(5);
    //cp.setZoomOutFactor(.1);
    JPanel graph = new JPanel();
    graph.add(cp);
    middle.add(graph, BorderLayout.CENTER);
}   

问题答案:

创建时ChartPanel,你有几个影响结果的选项:

  1. 接受DEFAULT_WIDTHDEFAULT_HEIGHT:680 x 420
  2. 指定首选widthheight在构造。
  3. 适当时setPreferredSize()显式调用
  4. 覆盖getPreferredSize()以动态计算大小。
@Override
public Dimension getPreferredSize() {
    // given some values of w & h
    return new Dimension(w, h);
}

选择将添加到的容器的布局ChartPanel。需要注意的是默认的布局JPanelFlowLayout,而的JFrameBorderLayout。作为一个具体示例,ThermometerDemo在构造函数中使用首选值,并GridLayout在容器中同时使用,以允许动态调整大小。



 类似资料:
  • 我已经将添加到中(使用),它很大。我能做点什么让它变小吗?

  • 问题内容: 我正在使用JFreeChart,并且希望能够将范围轴上的标签从数字更改为对我所在的域更有意义的名称。我只看到用于自定义标签外观的选项,而无法覆盖其内容基于刻度位置的标签。 有谁知道如何覆盖tickLabel的文本? 问题答案: JFreeChart 显示了如何使用该方法。为此有几个方便的静态工厂。要覆盖默认值,您可以“创建自己的实例,然后将其传递给方法”。 附录:上述默认值仅使用; 的

  • 我使用JFreeChart(1.0.14)中的来显示一些图表。布局由MigLayout处理,所有工作都很好。然而,我不时有奇怪的行为。当图形改变时,面板的最小大小有时也会改变。我不是在代码中设置它,而是将一切都留给Miglayout。 null

  • 问题内容: 我在启动时修改UIView高度有麻烦。 我必须使用UIView,我希望其中一个是屏幕尺寸* 70,另一个是填补空白。 这是我所拥有的 和 它在运行时对应用程序没有影响。我使用自动版式,但只有边距限制… 我做错了吗? 问题答案: 干得好。这应该工作。

  • 问题内容: 我的MySQL数据库中的BLOB字段有问题-上传大于1MB的文件时出现错误 这是我尝试过的: 在MySQL查询浏览器中,我运行了一个,结果显示为1048576。 然后,我执行查询之后-这让我33554432预期。 但是,当我重新启动MySQL服务器时,它神奇地回到了1048576。在这里我做错了什么? 额外的问题,是否可以压缩BLOB字段? 问题答案: 通过在文件中的或部分下添加单行来

  • 问题内容: 如何增加字体大小? 问题答案: 其中fontSize是一个int。drawString的API指出x和y参数是坐标,与文本的大小无关。