diff --git a/src/main/java/JavaWetterkram/WetterAPI.java b/src/main/java/JavaWetterkram/WetterAPI.java index 52545e2..1d5b13f 100644 --- a/src/main/java/JavaWetterkram/WetterAPI.java +++ b/src/main/java/JavaWetterkram/WetterAPI.java @@ -6,18 +6,19 @@ import java.io.FileNotFoundException; import java.io.InputStreamReader; import java.net.HttpURLConnection; import java.net.URL; +import java.net.URLEncoder; import java.net.URI; import java.util.Scanner; public class WetterAPI { - private static final String API(String mode, String ort) { + private static final String API(String mode, String ort) throws Exception { return new StringBuilder() .append("https://api.openweathermap.org/data/2.5/") .append(mode) .append("?units=metric&lang=de&appid=") .append(readApiKey("env.txt")) .append("&q=") - .append(ort) + .append(URLEncoder.encode(ort, "UTF-8")) .toString(); }; @@ -37,7 +38,7 @@ public class WetterAPI { int responseCode = connection.getResponseCode(); if(responseCode != 200) { - throw new Exception("Fehler bei der Anfrage: " + responseCode); + throw new Exception("Dieser Ort wurde nicht gefunden."); } try(BufferedReader reader = new BufferedReader(new InputStreamReader(connection.getInputStream()))) { diff --git a/src/main/java/JavaWetterkram/WetterApp.java b/src/main/java/JavaWetterkram/WetterApp.java index e976104..be9c327 100644 --- a/src/main/java/JavaWetterkram/WetterApp.java +++ b/src/main/java/JavaWetterkram/WetterApp.java @@ -17,26 +17,34 @@ public class WetterApp { } public void start() { - System.out.println("Wetter Schmetter"); - System.out.println("---------"); - System.out.println("1. Aktuelles Wetter"); - System.out.println("2. Wettervorhersage"); - System.out.println("3. Beenden"); + this.clearScreen(); - int auswahl = this.readInputInt(); + while(true) { + System.out.println(); + System.out.println("Wetter Schmetter"); + System.out.println("---------"); + System.out.println("1. Aktuelles Wetter"); + System.out.println("2. Wettervorhersage"); + System.out.println("3. Beenden"); - switch(auswahl) { - case 1: - this.getAktuellesWetter(); - break; - case 2: - this.getWettervorhersage(); - break; - case 3: - System.out.println("Beenden..."); - break; - default: - System.out.println("Ungültige Eingabe"); + int auswahl = this.readInputInt(); + this.clearScreen(); + + switch(auswahl) { + case 1: + this.getAktuellesWetter(); + break; + case 2: + this.getWettervorhersage(); + break; + case 3: + System.out.println("Beenden..."); + scanner.close(); + System.exit(0); + break; + default: + System.out.println("Ungültige Eingabe"); + } } } @@ -76,16 +84,18 @@ public class WetterApp { } private void printWetterDaten(WetterDaten wetterDaten) { + System.out.println(); System.out.println("Wetter in " + wetterDaten.getOrt()); System.out.println("Temperatur: " + wetterDaten.getTemperatur() + " °C"); System.out.println("Luftdruck: " + wetterDaten.getLuftdruck() + " hPa"); System.out.println("Luftfeuchtigkeit: " + wetterDaten.getLuftfeuchtigkeit() + " %"); - scanner.close(); + System.out.println(); } private void printWetterVorhersage(String json) { JSONObject jsonObject = new JSONObject(json); JSONArray forecastArray = jsonObject.getJSONArray("list"); + System.out.println(); for(int i = 0; i < forecastArray.length(); i += 8) { JSONObject forecastObject = forecastArray.getJSONObject(i); @@ -98,7 +108,6 @@ public class WetterApp { System.out.println("Luftdruck: " + luftdruck + " hPa"); System.out.println(); } - scanner.close(); } private String readInput() { @@ -110,4 +119,9 @@ public class WetterApp { scanner.nextLine(); return ret; } + + private void clearScreen() { + System.out.print("\033[H\033[2J"); + System.out.flush(); + } }