import java.util.Scanner; import java.io.File; import java.io.FileNotFoundException; import javax.swing.*; import java.awt.*; import java.lang.Math; import java.util.Random; import java.util.*; public class yeet extends JFrame { Scanner scan; int n, e;// n: Anzahl Punkte, e: Anzahl Wege String tmpStr1, filename; int[] xarr, yarr; int[][] earr; char tmpChar; public static void main(String[] args) { if (args.length == 0) { new yeet(); } else { for (int i = 0; i < args.length; i++) { new yeet(args[i]); } } } public yeet() { setSize(800, 800); setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); setLocationRelativeTo(null); setVisible(true); setBackground(new Color(0, 0, 0)); filename = "input.txt"; steps(); } public yeet(String input) { setSize(800, 800); setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); setLocationRelativeTo(null); setVisible(true); setBackground(new Color(0, 0, 0)); filename = input; steps(); } public void steps() { readFile(); // einlesen readNE(); // anzahl von n und e finden. Als int n und e gespeichert make(); // Arrays erstellen repaint(); } public void readFile() { try { scan = new Scanner(new File(filename)); } catch (FileNotFoundException e) { e.printStackTrace(); } } public void readNE() { n = 0; e = 0; while (scan.hasNext() == true) { tmpChar = scan.next().charAt(0); if (tmpChar == 'n') { n++; } if (tmpChar == 'e') { e++; } } readFile(); } public void make() { readFile(); xarr = new int[n];// X Position yarr = new int[n];// Y Position earr = new int[e][3];// [x][y]; x:Wert, y:0=xPos, 1=yPos, 2=Abstand for (int i = 0; i < n; i++) { scan.next(); xarr[i] = scan.nextInt(); yarr[i] = scan.nextInt(); } for (int i = 0; i < e; i++) { scan.next(); earr[i][0] = scan.nextInt();// Start earr[i][1] = scan.nextInt();// Ziel earr[i][2] = scan.nextInt();// Entfernung } readFile(); } public void paint(Graphics g) { labAnzeigen(g); } public void neuzeichnen() { repaint(); } public void anzeigen(Graphics g) { labAnzeigen(g); } public void labAnzeigen(Graphics g) { g.clearRect(0, 0, 800, 800);// Feld clearen g.setColor(new Color(200, 10, 100));// Farbe setzen for (int i = 0; i < n; i++) { g.fillOval(xarr[i], yarr[i], 36, 36);// Punkt fur Stadt erstellen g.setColor(new Color(0, 0, 0)); g.drawString(Integer.toString(i), xarr[i] + 14, yarr[i] + 22);// Stadt bezeichnen g.setColor(new Color(200, 10, 100)); } for (int i = 0; i < e; i++) { g.drawLine(xarr[earr[i][0]] + 16, yarr[earr[i][0]] + 16, xarr[earr[i][1]] + 16, yarr[earr[i][1]] + 16);// linie // zwischen // zwei // Punkten } for (int i = 0; i < e; i++) { g.setColor(new Color(100, 255, 100)); g.drawString(Integer.toString(earr[i][2]), (xarr[earr[i][0]] + xarr[earr[i][1]]) / 2 + 10, (yarr[earr[i][0]] + yarr[earr[i][1]]) / 2 + 20);// zeichnung der Linie g.setColor(new Color(200, 10, 100)); } } }