Рисование 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();
}
}
Надеюсь, вы понимаете, и спасибо за ответ заранее:).