Добавлено чтение и отрисовка объектов из CSV
This commit is contained in:
parent
76f2ca06e4
commit
e5d05ef173
@ -1,7 +1,11 @@
|
|||||||
package tse.lr5;
|
package tse.lr5;
|
||||||
|
|
||||||
|
import java.awt.Color;
|
||||||
|
import java.awt.Point;
|
||||||
import java.io.File;
|
import java.io.File;
|
||||||
|
import java.io.IOException;
|
||||||
import javax.swing.JFrame;
|
import javax.swing.JFrame;
|
||||||
|
import javax.swing.JOptionPane;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @author aNNiMON
|
* @author aNNiMON
|
||||||
@ -20,17 +24,79 @@ public class TrianglesWindow extends JFrame {
|
|||||||
pack();
|
pack();
|
||||||
}
|
}
|
||||||
|
|
||||||
public void execute() throws InterruptedException {
|
public void execute() {
|
||||||
setVisible(true);
|
|
||||||
|
|
||||||
File[] csvFiles = Utils.readFiles("lr5", ".csv");
|
File[] csvFiles = Utils.readFiles("lr5", ".csv");
|
||||||
|
if (csvFiles == null) {
|
||||||
|
JOptionPane.showMessageDialog(this, "CSV-файлов не обнаружено! Сворачиваемся, ребята",
|
||||||
|
"Ошибка", JOptionPane.ERROR_MESSAGE);
|
||||||
|
return;
|
||||||
|
}
|
||||||
System.out.println("Найдено " + csvFiles.length + " файлов.");
|
System.out.println("Найдено " + csvFiles.length + " файлов.");
|
||||||
|
|
||||||
|
setVisible(true);
|
||||||
|
try {
|
||||||
System.out.println("3");
|
System.out.println("3");
|
||||||
Thread.sleep(1000);
|
Thread.sleep(1000);
|
||||||
System.out.println("2");
|
System.out.println("2");
|
||||||
Thread.sleep(1000);
|
Thread.sleep(1000);
|
||||||
System.out.println("1");
|
System.out.println("1");
|
||||||
Thread.sleep(1000);
|
Thread.sleep(1000);
|
||||||
|
} catch (InterruptedException ex) { }
|
||||||
System.out.println("Понеслась!!");
|
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