Potrzebuje ten program przerobić tak by wczytywał dane z pliku dane.txt (żeby nie było opcji wybrania pliku, ani żadnej innej) i robił wykres. Czy ktoś mógłby mi pomóc?
package project;
import java.awt.BorderLayout;
import java.awt.event.ActionListener;
import javax.swing.JFrame;
import java.awt.BorderLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.io.BufferedReader;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;
import javax.swing.JFileChooser;
import javax.swing.JFrame;
import javax.swing.JMenu;
import javax.swing.JMenuBar;
import javax.swing.JMenuItem;
import javax.swing.SwingUtilities;
import org.jfree.chart.ChartFactory;
import org.jfree.chart.ChartFrame;
import org.jfree.chart.ChartPanel;
import org.jfree.chart.JFreeChart;
import org.jfree.chart.plot.PlotOrientation;
import org.jfree.data.xy.XYSeries;
import org.jfree.data.xy.XYSeriesCollection;
public class Plot extends JFrame implements ActionListener {
private static final long serialVersionUID = 1L;
protected static File file;
protected static FileReader fR;
BufferedReader bufferedReader;
private List<Double> X = new ArrayList<Double>();
private List<Double> Y = new ArrayList<Double>();
public Plot() {
super("Wykresy");
setSize(600, 600);
setLayout(new BorderLayout());
JMenuBar menuBar = new JMenuBar();
JMenu menu = new JMenu("Opcje");
JMenuItem wczytaj= new JMenuItem("Wczytaj dane");
JMenuItem load = new JMenuItem("Pobierz dane");
menuBar.add(menu);
wczytaj.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e) {
final JFileChooser fc = new JFileChooser();
int returnVal = fc.showOpenDialog(fc);
file = fc.getSelectedFile();
if (returnVal != JFileChooser.APPROVE_OPTION){
return;
}
try {
fR = new FileReader(file);
bufferedReader = new BufferedReader(fR);
String linia = null;
while((linia = bufferedReader.readLine()) != null){
String holder[] = linia.split("\t");
X.add(Double.parseDouble(holder[0]));
Y.add(Double.parseDouble(holder[1]));
}
XYSeries series = new XYSeries("Nazwa serii 1");
for(int i = 0;i<X.size();i++) {
series.add(X.get(i), Y.get(i));
}
XYSeriesCollection dataset = new XYSeriesCollection();
dataset.addSeries(series);
JFreeChart chart = ChartFactory.createXYLineChart(
"Wykres XY",
"Opis osi X",
"Opis osi Y",
dataset,
PlotOrientation.VERTICAL,
true,
true,
false
);
ChartPanel frame1=new ChartPanel(chart);
getContentPane().add(frame1);
revalidate();
} catch (FileNotFoundException e1) {
e1.printStackTrace();
} catch (IOException e1) {
e1.printStackTrace();
}
}
});
menu.add(wczytaj);
menu.add(load);
add(BorderLayout.NORTH, menuBar);
load.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e) {
try {
Loading.zapis();
} catch (IOException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}
}
});
}
public static void chart(String arg[]){
}
@Override
public void actionPerformed(java.awt.event.ActionEvent arg0) {
// setLayout(new BorderLayout());
//setVisible(true);
SwingUtilities.invokeLater(new Runnable() {
@Override
public void run() {
JFrame f = new Plot();
f.setLocationRelativeTo(null);
f.setVisible(true);
}
});
}
}