是否可以保持单位的宽高比?例如,是否可以使它们成为正方形?
在以下示例中,绘制一个矩形。不幸的是,通过调整窗口大小可以使其成为正方形。是否有可能告诉JFreeChart在调整大小时保持比例?
package tests.org.jfree.chart;
import javax.swing.JFrame;
import javax.swing.SwingUtilities;
import org.jfree.chart.ChartFactory;
import org.jfree.chart.ChartPanel;
import org.jfree.chart.JFreeChart;
import org.jfree.data.xy.DefaultXYDataset;
public class Runner_JFreeChart_01 {
public static class MyChartPanel extends ChartPanel {
private static final long serialVersionUID = 8474384653351996554L;
DefaultXYDataset dataset = new DefaultXYDataset();
{
dataset.addSeries("key", new double[][]{{10, 300, 300, 10, 10},{10, 10, 50, 50, 10}});
}
JFreeChart chart = ChartFactory.createXYLineChart("", "", "", dataset);
public MyChartPanel() {
super(null);
setChart(chart);
}
}
public static void main(String[] args) {
SwingUtilities.invokeLater(new Runnable() {
@Override
public void run() {
JFrame frame = new JFrame("Runner_JFreeChart_01");
frame.add(new MyChartPanel());
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.pack();
frame.setLocationRelativeTo(null);
frame.setVisible(true);
}
});
}
}
结果:
答案 0 :(得分:1)
在您的主要尝试添加以下代码,看看它是否有效。
public static void main(String[] args) {
MyChartPanel myChart = new MyChartPanel();
myChart.setMinimumDrawWidth(0);
myChart.setMaximumDrawWidth(Integer.MAX_VALUE);
myChart.setMinimumDrawHeight(0);
myChart.setMaximumDrawHeight(Integer.MAX_VALUE);
// Other code here
然后将图表添加到JFrame的位置: 替换以下代码:
frame.add(new MyChartPanel());
使用
frame.add(myChart);
享受!