【问题标题】:TeeChart Code Generator ConfigurationTeeChart 代码生成器配置
【发布时间】:2013-11-05 06:51:58
【问题描述】:

我一直在为我的一个项目评估 TeeChart。我通过这张图片http://www.steema.com/uploads/products/teechartJavaCurveFit.png 来了。我已经运行了功能部分,但我无法看到生成的代码。在源代码选项卡上,它需要某种我无法解决的配置。

如果有人有这方面的经验,请告诉我。 谢谢, UABajwah

【问题讨论】:

    标签: java teechart


    【解决方案1】:

    它应该从 Features\src 文件夹加载文件。我也可以在这里重现这个问题。我们将调查这个问题。此特定示例的代码可在 \Features\src\features\functionCurveFittingDemo.java 中找到。我也复制了下面的完整示例代码。

    /*
     * CurveFittingDemo.java
     *
     * <p>Copyright: (c) 2005-2007 by Steema Software SL. All Rights Reserved.</p>
     *
     * <p>Company: Steema Software SL</p>
     */
    
    package features.function;
    
    import com.steema.teechart.legend.LegendAlignment;
    import com.steema.teechart.functions.CurveFitting;
    import com.steema.teechart.styles.FastLine;
    
    import java.awt.event.ActionEvent;
    import java.awt.event.ActionListener;
    import java.awt.event.ItemEvent;
    import java.awt.event.ItemListener;
    import java.util.Random;
    
    import javax.swing.Box;
    import javax.swing.JCheckBox;
    import javax.swing.JLabel;
    import javax.swing.JPanel;
    import javax.swing.JSpinner;
    import javax.swing.SpinnerModel;
    import javax.swing.SpinnerNumberModel;
    import javax.swing.Timer;
    import javax.swing.event.ChangeEvent;
    import javax.swing.event.ChangeListener;
    
    import features.ChartSamplePanel;
    
    /**
     *
     * @author tom
     */
    public class CurveFittingDemo extends ChartSamplePanel
            implements ChangeListener, ItemListener {
    
        private FastLine dataSeries, curve1Series, curve2Series;
        private CurveFitting fitting1Function, fitting2Function;
    
        /**
         * Creates a new instance of CurveFittingDemo
         */
        public CurveFittingDemo() {
            super();
            animateButton.addItemListener(this);
            degree1Spinner.addChangeListener(this);
            degree2Spinner.addChangeListener(this);
        }
    
        public void itemStateChanged(ItemEvent e) {
            Object source = e.getItemSelectable();
            boolean isSelected = (e.getStateChange() == ItemEvent.SELECTED);
    
            if (source == animateButton) {
                if (isSelected) {
                    timer.start();
                } else {
                    timer.stop();
                }
            };
        }
    
        public void stateChanged(ChangeEvent e) {
            Object source = e.getSource();
            if (source instanceof JSpinner) {
                SpinnerModel tmpModel = ((JSpinner)source).getModel();
                if (tmpModel instanceof SpinnerNumberModel) {
                    int degree = ((SpinnerNumberModel)tmpModel).getNumber().intValue();
                    if (degree > 0) {
                        if (source == degree1Spinner) {
                            fitting1Function.setPolyDegree(degree);
                        } else if (source == degree2Spinner) {
                            fitting2Function.setPolyDegree(degree);
                        }
                    }
                }
            }
        }
    
        protected void initComponents() {
            super.initComponents();
    
            /* Chart Components */
            dataSeries = new com.steema.teechart.styles.FastLine(chart1.getChart());
            dataSeries.fillSampleValues(200);
            dataSeries.setTitle("data");
    
            curve1Series = new com.steema.teechart.styles.FastLine(chart1.getChart());
            curve2Series = new com.steema.teechart.styles.FastLine(chart1.getChart());
    
            for (int i=0; i < chart1.getSeriesCount(); i++) {
                chart1.getSeries(i).getMarks().setVisible(false);
                ((FastLine)chart1.getSeries(i)).setStairs(false);
            }
    
            fitting1Function = new com.steema.teechart.functions.CurveFitting(chart1.getChart());
            fitting1Function.setPeriod(1);
            fitting1Function.setPolyDegree(5);
    
            curve1Series.setDataSource(dataSeries);
            curve1Series.setFunction(fitting1Function);
            curve1Series.setTitle("Curve1");
    
            fitting2Function = new com.steema.teechart.functions.CurveFitting();
            fitting2Function.setChart(chart1.getChart());
            fitting2Function.setPeriod(1);
            fitting2Function.setPolyDegree(3);
    
            curve2Series.setDataSource(dataSeries);
            curve2Series.setFunction(fitting2Function);
            curve2Series.setTitle("Curve2");
    
            /* General GUI Components */
            animateButton = new JCheckBox("Animate");
            animateButton.setSelected(false);
    
            SpinnerModel tmpModel;
            tmpModel = new SpinnerNumberModel(
                    5,
                    2,
                    20,
                    1);
            degree1Spinner = new JSpinner(tmpModel);
            tmpModel = new SpinnerNumberModel(
                    3,
                    2,
                    20,
                    1);
            degree2Spinner = new JSpinner(tmpModel);
    
            //Create a timer.
            timer = new Timer(ONE_MILLISECOND, new ActionListener() {
                public void actionPerformed(ActionEvent evt) {
                    /* stop timer */
                    timer.stop();
    
                    Random generator = new Random();
    
                    /* delete first point */
                    dataSeries.delete(0);
    
                    /* add a new random point */
                    dataSeries.add(
                            dataSeries.getXValues().getLast()+1,
                            dataSeries.getYValues().getLast()+(generator.nextInt(MAX_CHART_SAMPLES)-(MAX_CHART_SAMPLES / 2)),
                            "",
                            dataSeries.getColor()
                            );
    
                    curve1Series.checkDataSource();  // <-- fill again the points
                    curve2Series.checkDataSource();  // <-- fill again the points
    
                    /* re-enable timer again */
                    timer.start();
                }
            });
        }
    
        protected void initGUI() {
            super.initGUI();
    
            chart1.getAspect().setView3D(false);
            chart1.getHeader().setVisible(true);
            chart1.setText("Curve Fitting");
            chart1.getLegend().setAlignment(LegendAlignment.BOTTOM);
    
            JLabel tmpLabel;
            JPanel tmpPane = getButtonPane();
            {
                tmpPane.add(animateButton);
                tmpPane.add(Box.createHorizontalStrut(10));
                tmpLabel = new JLabel("Poly. degree 1:");
                tmpLabel.setDisplayedMnemonic('1');
                tmpLabel.setLabelFor(degree1Spinner);
                tmpPane.add(tmpLabel);
                tmpPane.add(degree1Spinner);
                tmpPane.add(Box.createHorizontalStrut(10));
                tmpLabel = new JLabel("2:");
                tmpLabel.setDisplayedMnemonic('2');
                tmpLabel.setLabelFor(degree2Spinner);
                tmpPane.add(tmpLabel);
                tmpPane.add(degree2Spinner);
                tmpPane.add(Box.createHorizontalGlue());
            }
        }
    
        private JCheckBox animateButton;
        private JSpinner degree1Spinner, degree2Spinner;
        private Timer timer;
    
        private final static int ONE_MILLISECOND = 1;
        private final static int MAX_CHART_SAMPLES = 1000;
    
    }
    

    【讨论】:

      猜你喜欢
      • 2013-05-19
      • 1970-01-01
      • 1970-01-01
      • 2016-06-22
      • 1970-01-01
      • 1970-01-01
      • 2021-05-19
      • 2011-01-02
      • 2017-12-03
      相关资源
      最近更新 更多