Рисование JPlot (из библиотеки JavaPlot) в конкретный JPane

Я работаю над программой, которая должна отображать график некоторых данных, и я должен использовать GNUplot. Я решил пойти с библиотекой JavaPlot, потому что это рекомендовано авторами GNUplot.

Я решил пойти с Swing и создать форму, которая будет содержать как график, так и код / ​​сценарий графика. Рисунок формы "DisplayPannel" должен содержать график и "textPane1" скрипт.

Так как я новичок в Swing (и в JavaPlot), я не могу решить проблему назначения JPlot, с компонентом, который рисует график, в DisplayPannel, где я хочу, чтобы граф рисовался. Я видел много людей, решающих подобные проблемы, но они всегда рисовали график в целом, а не только в части.

Вот код формы:

import com.panayotis.gnuplot.JavaPlot;
import com.panayotis.gnuplot.swing.JPlot;

import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import javax.swing.*;
import javax.swing.event.ChangeEvent;
import javax.swing.event.ChangeListener;
import java.awt.event.*;
import java.util.Properties;


public class IS {
    private JProgressBar progressBar1;
    private JSlider slider1;
    private JButton button1;
    private JPanel main;
    private JTextPane textPane1;
    private JPanel Displaypannel;

    public IS() {


        button1.addActionListener(new ActionListener() {
            @Override
            public void actionPerformed(ActionEvent e) {
                progressBar1.setValue(slider1.getValue());
            }
        });
        slider1.addChangeListener(new ChangeListener() {
            @Override
            public void stateChanged(ChangeEvent e) {
                progressBar1.setValue(slider1.getValue());
            }
        });


    }

    public static Properties readProperties(){

        Properties prop = new Properties();
        InputStream input = null;
        try {
            input = new FileInputStream("./prop/config.properties");
            prop.load(input);

        }catch (IOException io) {
            io.printStackTrace();
        } finally {
            if (input != null) {
                try { input.close();
                } catch (IOException e) {
                    e.printStackTrace();
                }
            }else
                return null;

        }
        return prop;
    }

    public static void writeProperties(Properties prop) //get GNUplot path
    {

            OutputStream output = null;
            try {
                output = new FileOutputStream("./prop/config.properties");
                 } catch (IOException io) {
                io.printStackTrace();
            } finally {
                if (output != null) {
                    try {
                        output.close();
                    } catch (IOException e) {
                    e.printStackTrace();
                    }
                }

            }

    }


    public void init() {

        Properties prop = null;
        prop = readProperties();


            JPlot plot = new JPlot(new JavaPlot(prop.getProperty("gnuplotpath")));
            plot.getJavaPlot().addPlot("sqrt(x)/x");
            plot.getJavaPlot().addPlot("x*sin(x)");
            plot.plot();




        JFrame frame = new JFrame("IS");
        frame.setContentPane(new IS().main);
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

//this is what i dont know how to do:
Displaypannel.add(plot); 

        frame.pack();
        frame.setVisible(true);
        writeProperties(prop);

    }



}

И это основной код:

public class bootup {

    public static void main(String[] args) {
        IS form = new IS();
        form.init();
    }

}

Надеюсь, вы понимаете, и спасибо за ответ заранее:).

0 ответов

Другие вопросы по тегам