Добавлено чтение и отрисовка объектов из CSV
This commit is contained in:
parent
76f2ca06e4
commit
e5d05ef173
@ -1,7 +1,11 @@
|
||||
package tse.lr5;
|
||||
|
||||
import java.awt.Color;
|
||||
import java.awt.Point;
|
||||
import java.io.File;
|
||||
import java.io.IOException;
|
||||
import javax.swing.JFrame;
|
||||
import javax.swing.JOptionPane;
|
||||
|
||||
/**
|
||||
* @author aNNiMON
|
||||
@ -20,17 +24,79 @@ public class TrianglesWindow extends JFrame {
|
||||
pack();
|
||||
}
|
||||
|
||||
public void execute() throws InterruptedException {
|
||||
setVisible(true);
|
||||
|
||||
public void execute() {
|
||||
File[] csvFiles = Utils.readFiles("lr5", ".csv");
|
||||
if (csvFiles == null) {
|
||||
JOptionPane.showMessageDialog(this, "CSV-файлов не обнаружено! Сворачиваемся, ребята",
|
||||
"Ошибка", JOptionPane.ERROR_MESSAGE);
|
||||
return;
|
||||
}
|
||||
System.out.println("Найдено " + csvFiles.length + " файлов.");
|
||||
|
||||
setVisible(true);
|
||||
try {
|
||||
System.out.println("3");
|
||||
Thread.sleep(1000);
|
||||
System.out.println("2");
|
||||
Thread.sleep(1000);
|
||||
System.out.println("1");
|
||||
Thread.sleep(1000);
|
||||
} catch (InterruptedException ex) { }
|
||||
System.out.println("Понеслась!!");
|
||||
|
||||
for (File file : csvFiles) {
|
||||
startReadInNewThread(file);
|
||||
}
|
||||
}
|
||||
|
||||
private void startReadInNewThread(final File file) {
|
||||
new Thread(new Runnable() {
|
||||
|
||||
@Override
|
||||
public void run() {
|
||||
readCsvFile(file);
|
||||
}
|
||||
}).start();
|
||||
}
|
||||
|
||||
private void readCsvFile(File file) {
|
||||
CsvReader<TrianglePaintable> csvReader = new CsvReader<>(file);
|
||||
csvReader.setReaderHandler(trianglesHandler);
|
||||
try {
|
||||
csvReader.readCsv();
|
||||
} catch (IOException ex) {
|
||||
ex.printStackTrace();
|
||||
}
|
||||
}
|
||||
|
||||
private final CsvReader.ReaderHandler<TrianglePaintable> trianglesHandler
|
||||
= new CsvReader.ReaderHandler() {
|
||||
|
||||
@Override
|
||||
public void onStartRead(File file) {
|
||||
System.out.println("Читаем файл " + file.getName());
|
||||
}
|
||||
|
||||
@Override
|
||||
public TrianglePaintable createObject(String[] params) {
|
||||
if (params.length != 8) throw new RuntimeException("Неверное количество параметров");
|
||||
|
||||
Color fill = Color.decode(params[0]);
|
||||
Color stroke = Color.decode(params[1]);
|
||||
Point p1 = Utils.readPoint(params[2], params[3]);
|
||||
Point p2 = Utils.readPoint(params[4], params[5]);
|
||||
Point p3 = Utils.readPoint(params[6], params[7]);
|
||||
TrianglePaintable obj = new TrianglePaintable(fill, stroke, p1, p2, p3);
|
||||
panel.addPaintable(obj);
|
||||
try {
|
||||
Thread.sleep(500);
|
||||
} catch (InterruptedException ex) { }
|
||||
return obj;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onFinishRead(File file) {
|
||||
System.out.println("Чтение файла " + file.getName() + " завершено!");
|
||||
}
|
||||
};
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user