我需要制作GUI应用程序,该应用程序从用户选择的文件中获取坐标,并使用.drawLine与它们形成一条线。我试图将点保存到ArrayList,然后初始化它们,但我不知道如何继续并使其成功。请帮帮我。
文件看起来像这样,可以是任何类型。
这是最有用的代码。
public class Line extends JPanel {
ArrayList<Integer> points = new ArrayList<>();
public Line() {
points.add(20);
points.add(40);
points.add(250);
points.add(40);
}
public void paintComponent(Graphics g) {
Graphics2D g2d = (Graphics2D) g;
for (int i = 0; i < points.size(); i++) {
g2d.drawLine(points.get(i), points.get(i), points.get(i), points.get(i));
System.out.println(points.get(i));
}
}
}
答案 0 :(得分:0)
以下是如何读取文件并存储行信息,然后绘制它们的示例。
为方便起见,它使用Graphics2D
Shape
方法,以便您在阅读文件时直接存储import java.awt.Graphics;
import java.awt.Graphics2D;
import java.awt.Shape;
import java.awt.geom.Line2D;
import java.io.File;
import java.io.FileNotFoundException;
import java.util.ArrayList;
import java.util.Scanner;
import javax.swing.JFrame;
import javax.swing.JPanel;
public class Line extends JPanel {
ArrayList<Shape> lines = new ArrayList<>();
public Line() {
try (Scanner scanner = new Scanner(new File("path_to_your_file"))) {
while (scanner.hasNextLine()) {
// split the line on the comma separator
String[] parts = scanner.nextLine().trim().split("\\,");
// read the coordinates
int x1 = Integer.valueOf(parts[0]);
int y1 = Integer.valueOf(parts[1]);
int x2 = Integer.valueOf(parts[2]);
int y2 = Integer.valueOf(parts[3]);
// create a Line and store it
lines.add(new Line2D.Float(x1, y1, x2, y2));
}
} catch (FileNotFoundException e) {
e.printStackTrace();
}
}
public void paintComponent(final Graphics g) {
Graphics2D g2d = (Graphics2D) g;
// draw all the lines
for (Shape line : lines) {
g2d.draw(line);
}
}
}
个对象。
/dev/urandom
答案 1 :(得分:0)
首先阅读文件,然后添加到列表中。
此外,它只是绘制圆圈的cos值。当它循环时,如果第一个数字为8,则循环绘制的是(0cbbd9f5-f1bd-11e7-92c0-4d5d3b7d0380) Endpoint response body before transformations:
{
"Message": "An error occurred and the request cannot be processed.",
"Type": "Service"
}
这是我的代码段。未经测试但应该可以正常工作:
g2d.drawLine(8,8,8,8);