Java - 在txt文件中绘制读取点的行

时间:2014-04-21 14:43:19

标签: java swing list

我正在努力了解Java,特别是Swing是如何工作的,所以我创建了一个在JPanel上绘制写意线的应用程序。然后使用“保存”按钮,我可以记住一些信息(当用户开始和结束绘制线条时,这些点会使线条等。)

我以这种方式保存信息:

编辑我重新编写了无用的东西,只是在不同的信息之间放了一个空格。

line 04:54:34:365 04:54:35:167 [java.awt.Point[x=249,y=114], java.awt.Point[x=249,y=114], java.awt.Point[x=207,y=87], java.awt.Point[x=207,y=87]]

这是一个线的例子;你能建议我如何解析文件以将线条绘制回JPanel吗?我认为它应该像“为每一行,追求'点'字并采取数据并绘制它”。这是正确的方法吗?我已经设法从/向文件读取和写入,因此问题在于只占用该行的那一部分并将其作为绘图函数的输入。

这是我从文件(.txt)中读取的方式:

List<String> lines = Files.readAllLines(Paths.get(file.getPath()), Charset.forName("UTF-8"));

谢谢!

1 个答案:

答案 0 :(得分:0)

我会做类似于AnubianNoob的建议,但每个绘制的&#34;行&#34;,甚至由许多点组成,在文本文件的每一行上。即使你不想这样做,最简单的方法就是只打印数字而不是整个对象。

创建两行后,文本文件可能如下:

249 114 207 87 230 110
115 240 90 210 112 245

现在你可以像你一样阅读所有的行,然后按空格分割每一行(或者你想在值之间放置任何字符)

//for each line in lines
String[] values = line.split(" ");
//Note we are adding 2 to i in each loop, because the 2nd value will be y value
for (int i = 0; i < values.length; i+=2)
{
    //Now just recreate the points
    //values[i] = x, values[i+1] = y
}