Java如何更改JFreeChart的大小

我在(使用)中添加了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在容器中同时使用,以允许动态调整大小。

以上是 Java如何更改JFreeChart的大小 的全部内容, 来源链接: utcz.com/qa/432350.html

回到顶部