Witam,
Zrobilem program ktory laczy punkty liniami, lecz chcialbym teraz zeby te wspolrzedne punktu byly pobierane z pliku a nie wpisywane recznie do kodu, lecz nie potrafie tego zrobic, drugi problem w tym jest taki ze wspolrzedne jakie chce wpisac sa typu "double" np.:
x y
18.5502758026123 50.1351661682129
18.5502758026123 50.1350288391113
18.5502777099609 50.1348915100098
18.5502796173096 50.1347503662109
18.5502834320068 50.1346092224121
I chcialbym zeby te punkty odpowiadaly innym punktom typu "int" na ekranie,
oraz jak wpisac je w petle do "t.dodajPunkt()" zeby narysowaly je wszystkie?
oto kod:
import javax.swing.*;
import java.awt.*;
import java.util.*;
import java.io.BufferedReader;
import java.io.File;
import java.io.FileReader;
public class tst
{
public Vector punkty;
public JPanel canvas;
public tst()
{
punkty = new Vector();
JFrame frm = new JFrame();
frm.getContentPane().setLayout(new BorderLayout());
frm.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
canvas = new JPanel()
{
public void paint(Graphics g)
{
super.paint(g);
rysujLinie(g);
}
};
frm.getContentPane().add(canvas);
frm.setSize(500,500);
frm.setVisible(true);
}
public void rysujLinie(Graphics g)
{
for (int i=1;i<punkty.size();i++)
{
Point p1 = (Point)punkty.elementAt(i-1);
Point p2 = (Point)punkty.elementAt(i);
g.drawLine(p1.x,p1.y,p2.x,p2.y);
}
}
public void dodajPunkt(int x, int y)
{
punkty.add(new Point(x,y));
canvas.repaint();
}
public static void main(String [] args) throws Exception
{
File file = new File("C://zad.txt");
if (file.isDirectory()) {
String[] files = file.list();
for (int i = 0; i < files.length; i++)
System.out.println(files[i]);
} else {
FileReader fr = new FileReader(file);
BufferedReader in = new BufferedReader(fr);
String line;
tst t = new tst();
while ((line = in.readLine()) != null)
{
String[] result = line.split(",");
// System.out.println(result[1] + " " + result[3]);
//dodanie punktów
t.dodajPunkt(2,20);
t.dodajPunkt(56,120);
}
}
}
}