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
,你有几个影响结果的选项:
- 接受
DEFAULT_WIDTH
和DEFAULT_HEIGHT:680 x 420
。 - 指定首选
width
和height
在构造。 - 适当时
setPreferredSize()
显式调用。 - 覆盖
getPreferredSize()
以动态计算大小。
@Overridepublic Dimension getPreferredSize() {
// given some values of w & h
return new Dimension(w, h);
}
选择将添加到的容器的布局ChartPanel
。需要注意的是默认的布局JPanel
是FlowLayout
,而的JFrame
是BorderLayout
。作为一个具体示例,ThermometerDemo
在构造函数中使用首选值,并GridLayout
在容器中同时使用,以允许动态调整大小。
以上是 Java如何更改JFreeChart的大小 的全部内容, 来源链接: utcz.com/qa/432350.html