Last active
December 24, 2019 11:28
-
-
Save prskr/1efb934ca0f98b4b1398 to your computer and use it in GitHub Desktop.
Easy IO util methods for beginners
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| package de.fhro.inf.prg2.common; | |
| import javax.swing.*; | |
| /** | |
| * Helper-Klasse fuer einfache IO Operationen | |
| * | |
| * @author Peter Kurfer | |
| * @version 0.0.1 | |
| * @since SS2016 | |
| */ | |
| public class IOHelper { | |
| private static final String defaultHeader = "IOHelper"; | |
| /** | |
| * Lesen eines Strings mit Default-Message und Default-Title | |
| * | |
| * @return eingegebener String | |
| */ | |
| public static String readString() { | |
| return readString("Bitte gib eine Zeichenkette ein:"); | |
| } | |
| /** | |
| * Lesen eines Strings mit eigener Message und Default-Title | |
| * | |
| * @param message Message welche im Dialog angezeigt wird | |
| * @return eingegebener String | |
| */ | |
| public static String readString(String message) { | |
| return readString(message, defaultHeader); | |
| } | |
| /** | |
| * Lesen eines String mit eigener Message und eigenem Title | |
| * | |
| * @param message Message welche im Dialog angezeigt wird | |
| * @param title Title des Dialogs | |
| * @return eingegebener String | |
| */ | |
| public static String readString(String message, String title) { | |
| return read(message, title, input -> input); | |
| } | |
| /** | |
| * Lesen eines Doubles mit Default-Message und Default-Title | |
| * | |
| * @return eingegebener Double | |
| */ | |
| public static double readDouble() { | |
| return readDouble("Bitte gib eine Kommazahl ein:"); | |
| } | |
| /** | |
| * Lesen eines Doubles mit eigener Message und Default-Title | |
| * | |
| * @param message Message welche im Dialog angezeigt wird | |
| * @return eingegebener Double | |
| */ | |
| public static double readDouble(String message) { | |
| return readDouble(message, defaultHeader); | |
| } | |
| /** | |
| * Lesen eines Doubles mit eigener Message und eigenem Title | |
| * | |
| * @param message Message welche im Dialog angezeigt wird | |
| * @param title Title des Dialogs | |
| * @return eingegebener Double | |
| */ | |
| public static double readDouble(String message, String title) { | |
| return read(message, title, Double::parseDouble); | |
| } | |
| /** | |
| * Lesen eines Integers mit Default-Message und Default-Title | |
| * | |
| * @return gelesener Integer | |
| */ | |
| public static int readInt() { | |
| return readInt("Bitte gib eine ganze Zahl ein:"); | |
| } | |
| /** | |
| * Lesen eines Integers mit eigener Message und Default-Title | |
| * | |
| * @param message Message welche im Dialog angezeigt wird | |
| * @return gelesener Integer | |
| */ | |
| public static int readInt(String message) { | |
| return readInt(message, defaultHeader); | |
| } | |
| /** | |
| * Lesen eines Integers mit eigener Message und eigenem Title | |
| * | |
| * @param message Message welche im Dialog angezeigt wird | |
| * @param title Title des Dialogs | |
| * @return gelesener Integer | |
| */ | |
| public static int readInt(String message, String title) { | |
| return read(message, title, Integer::parseInt); | |
| } | |
| /** | |
| * Anzeigen einer String-Message mit Default-Title | |
| * | |
| * @param message Message welche angezeigt werden soll | |
| */ | |
| public static void showStringMessage(String message) { | |
| showStringMessage(message, defaultHeader); | |
| } | |
| /** | |
| * Anzeigen einer String-Message mit eigenem Title | |
| * | |
| * @param message Message welche angezeigt werden soll | |
| * @param title Title des Dialogs | |
| */ | |
| public static void showStringMessage(String message, String title) { | |
| show(message, title); | |
| } | |
| /** | |
| * Anzeigen einer Double-Message mit Default-Title | |
| * | |
| * @param message Message welche angezeigt werden soll | |
| */ | |
| public static void showDoubleMessage(double message) { | |
| showDoubleMessage(message, defaultHeader); | |
| } | |
| /** | |
| * Anzeigen einer Double-Message mit eigenem Title | |
| * | |
| * @param message Message welche angezeigt werden soll | |
| * @param title Title des Dialogs | |
| */ | |
| public static void showDoubleMessage(double message, String title) { | |
| show(message, title); | |
| } | |
| /** | |
| * Anzeigen einer Integer-Message mit Default-Title | |
| * | |
| * @param message Message welche angezeigt werden soll | |
| */ | |
| public static void showIntMessage(int message) { | |
| showIntMessage(message, defaultHeader); | |
| } | |
| /** | |
| * Anzeigen einer Integer-Message mit eigenem Title | |
| * | |
| * @param message Message welche angezeigt werden soll | |
| * @param title Title des Dialogs | |
| */ | |
| public static void showIntMessage(int message, String title) { | |
| show(message, title); | |
| } | |
| /** | |
| * Wrapper-Methode um statische Typisierung bei Ausgaben zu simulieren | |
| * | |
| * @param message Message welche angezeigt wird | |
| * @param title Title des Dialogs | |
| */ | |
| private static void show(Object message, String title) { | |
| JFrame frame = new JFrame(); | |
| JOptionPane.showMessageDialog(frame, message, title, JOptionPane.INFORMATION_MESSAGE); | |
| } | |
| /** | |
| * Methode welche das tatsaechliche Lesen vom InputDialog uebernimmt | |
| * | |
| * @param message Message welche angezeigt wird | |
| * @param title Title des Dialogs | |
| * @param converter Konverter welcher den Input in die benoetigten Typ umwandelt | |
| * @param <T> Typ welcher gelesen werden soll | |
| * @return gelesener Wert | |
| */ | |
| private static <T> T read(String message, String title, InputConverter<T> converter) { | |
| boolean successfullyRead = false; | |
| T result = null; | |
| JFrame frame = new JFrame(); | |
| do { | |
| String input = JOptionPane.showInputDialog(frame, message, title, JOptionPane.QUESTION_MESSAGE); | |
| try { | |
| result = converter.convert(input); | |
| successfullyRead = true; | |
| } catch (Exception e) { | |
| } | |
| } while (!successfullyRead); | |
| return result; | |
| } | |
| /** | |
| * Helper-Interface zur Vermeidung von Code-Duplikaten beim Lesen | |
| * | |
| * @param <T> Typ in welche konvertiert werden soll | |
| */ | |
| private interface InputConverter<T> { | |
| T convert(String input) throws Exception; | |
| } | |
| } |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| package de.fhro.inf.prg2.kotlin.common | |
| import javax.swing.JFrame | |
| import javax.swing.JOptionPane | |
| /** | |
| * Created by baez on 25.03.16. | |
| */ | |
| const private val defaultHeader : String = "IOHelper" | |
| fun readString(message: String = "Bitte gib eine Zeichenkette ein:", title: String = defaultHeader) : String { | |
| return read(message, title, "", { it }) | |
| } | |
| fun readDouble(message: String = "Bitte gib eine Kommazahl ein:", title: String = defaultHeader) : Double { | |
| return read(message, title, 0.0, { it.toDouble() }) | |
| } | |
| fun readInt(message: String = "Bitte gib eine ganze Zahl ein:", title: String = defaultHeader) : Int { | |
| return read(message, title, 0, { it.toInt() }) | |
| } | |
| fun showStringMessage(message: String, title: String = defaultHeader) { | |
| show(message, title) | |
| } | |
| fun showDoubleMessage(message: Double, title: String = defaultHeader){ | |
| show(message, title) | |
| } | |
| fun showIntMessage(message: Int, title: String = defaultHeader){ | |
| show(message, title) | |
| } | |
| private fun show(message : Any, title: String){ | |
| val frame = JFrame() | |
| JOptionPane.showMessageDialog(frame, message, title, JOptionPane.INFORMATION_MESSAGE) | |
| } | |
| private fun <T> read(message: String, title: String, default: T, converter: (input: String) -> T) : T { | |
| val frame = JFrame() | |
| do{ | |
| val input = JOptionPane.showInputDialog(frame, message, title, JOptionPane.QUESTION_MESSAGE) | |
| try{ | |
| return converter(input) | |
| }catch(e : Exception){ | |
| } | |
| }while(true) | |
| return default; | |
| } | |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment