From 68e4c7923918f2d74cadf7c43c906083f78b0103 Mon Sep 17 00:00:00 2001 From: Anas Elgarhy Date: Wed, 15 Jun 2022 19:39:00 +0200 Subject: [PATCH] =?UTF-8?q?Improve=20artc=20=F0=9F=A4=93?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../anas/jcolorfulconsole/ColoredString.java | 17 ++++++++++------- src/main/java/test/Main.java | 6 +++--- 2 files changed, 13 insertions(+), 10 deletions(-) diff --git a/src/main/java/com/anas/jcolorfulconsole/ColoredString.java b/src/main/java/com/anas/jcolorfulconsole/ColoredString.java index 94b2d19..9c6a90f 100644 --- a/src/main/java/com/anas/jcolorfulconsole/ColoredString.java +++ b/src/main/java/com/anas/jcolorfulconsole/ColoredString.java @@ -17,7 +17,7 @@ public class ColoredString { } public ColoredString(String str, TextStyle... styles) { - this(str, null, styles); + this(str, (TextColor) null, styles); } public ColoredString(String str, TextColor foregroundColor, TextStyle... styles) { @@ -36,6 +36,10 @@ public class ColoredString { } } + public ColoredString(String str, String foregroundColor, TextStyle... styles) { + this(str, foregroundColor, null, styles); + } + public ColoredString(String str, String foregroundColor, String backgroundColor, TextStyle... styles) { this(str, TextColor.Factory.fromString(foregroundColor), @@ -76,7 +80,7 @@ public class ColoredString { if (strBytes == null) { return null; } - return toColoredString().getBytes(StandardCharsets.UTF_8); + return toString().getBytes(StandardCharsets.UTF_8); } public void setStr(String str) { @@ -98,7 +102,8 @@ public class ColoredString { } - public String toColoredString() { + @Override + public String toString() { StringBuilder sb = new StringBuilder(); final String escapeSequenceOpen = "\u001b["; final String escapeSequenceClose = "\u001b[0m"; @@ -120,7 +125,7 @@ public class ColoredString { sb.append(new String(backgroundColor.getBackgroundSGRSequence(), StandardCharsets.UTF_8)); sb.append("m"); } - sb.append(this); + sb.append(this.toNormalStringString()); if (foregroundColor != null) { sb.append(escapeSequenceClose); @@ -138,9 +143,7 @@ public class ColoredString { return sb.toString(); } - - @Override - public String toString() { + public String toNormalStringString() { return strBytes == null || strBytes.length < 1 ? null : new String(strBytes, StandardCharsets.UTF_8); } diff --git a/src/main/java/test/Main.java b/src/main/java/test/Main.java index c5c9df9..692fdc9 100644 --- a/src/main/java/test/Main.java +++ b/src/main/java/test/Main.java @@ -6,15 +6,15 @@ import com.anas.jcolorfulconsole.lanterna.TextColor; public class Main { public static void main(String[] args) { - ColoredString coloredString = new ColoredString("Hello World", "red", "blue", TextStyle.BOLD, TextStyle.ITALIC); - System.out.println(coloredString.toColoredString()); + ColoredString coloredString = new ColoredString("Hello World", null, "blue", TextStyle.BOLD, TextStyle.ITALIC); + System.out.println(coloredString); new Thread(() -> { while (true) { System.out.println(new ColoredString("Hi", new TextColor.RGB((int) (Math.random() * 255), (int) (Math.random() * 255), (int) (Math.random() * 255)), new TextColor.RGB((int) (Math.random() * 255), (int) (Math.random() * 255), (int) (Math.random() * 255)), - TextStyle.values()[(int) (Math.random() * TextStyle.values().length)]).toColoredString()); + TextStyle.values()[(int) (Math.random() * TextStyle.values().length)])); try { Thread.sleep(1000); } catch (InterruptedException e) {