Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/310.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何制作JFreeChart以保持纵横比?_Java_Jfreechart_Aspect Ratio - Fatal编程技术网

Java 如何制作JFreeChart以保持纵横比?

Java 如何制作JFreeChart以保持纵横比?,java,jfreechart,aspect-ratio,Java,Jfreechart,Aspect Ratio,是否可以保持单元的某些纵横比?例如,有可能使它们成正方形吗 在下面的示例中,绘制一个矩形。不幸的是,可以通过调整窗口大小使其成为方形。可以告诉JFreeChart在调整大小时保持比率吗 package tests.org.jfree.chart; import javax.swing.JFrame; import javax.swing.SwingUtilities; import org.jfree.chart.ChartFactory; import org.jfree.chart.Ch

是否可以保持单元的某些纵横比?例如,有可能使它们成正方形吗

在下面的示例中,绘制一个矩形。不幸的是,可以通过调整窗口大小使其成为方形。可以告诉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);

            }
        });


    }

}
结果:


在主菜单中,尝试添加以下代码,看看是否有效

 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);