@@ -46,7 +46,7 @@ public class MainGUI extends MCP {
4646 public static final String [] TABS = {"task.decompile" , "task.recompile" , "task.reobfuscate" , "task.build" , "options.running" };
4747 public static final TaskParameter [][] TAB_PARAMETERS = {
4848 {TaskParameter .PATCHES , TaskParameter .FERNFLOWER_OPTIONS , TaskParameter .IGNORED_PACKAGES , TaskParameter .OUTPUT_SRC , TaskParameter .DECOMPILE_RESOURCES , TaskParameter .GUESS_GENERICS , TaskParameter .STRIP_GENERICS },
49- {TaskParameter .SOURCE_VERSION , TaskParameter .TARGET_VERSION , TaskParameter .JAVA_HOME , TaskParameter .JAVAC_ARGS }, {TaskParameter .OBFUSCATION , TaskParameter .SRG_OBFUSCATION , TaskParameter .EXCLUDED_CLASSES , TaskParameter .STRIP_SOURCE_FILE },
49+ {TaskParameter .SOURCE_VERSION , TaskParameter .TARGET_VERSION , TaskParameter .JAVA_HOME , TaskParameter .JAVAC_ARGS }, {TaskParameter .OBFUSCATION , TaskParameter .SRG_OBFUSCATION , TaskParameter .EXCLUDED_CLASSES , TaskParameter .STRIP_SOURCE_FILE , TaskParameter . STRING_REMAP_PACKAGES },
5050 {TaskParameter .FULL_BUILD }, {TaskParameter .RUN_BUILD , TaskParameter .RUN_ARGS , TaskParameter .GAME_ARGS }
5151 };
5252 public Theme theme = Theme .THEMES_MAP .get (UIManager .getCrossPlatformLookAndFeelClassName ());
@@ -293,10 +293,26 @@ public void changeWorkingDirectory() {
293293
294294 public void inputOptionsValue (TaskParameter param ) {
295295 String s = MCP .TRANSLATOR .translateKey ("options.enterValue" );
296+ Object initialValue ;
296297 if (param .type == String [].class ) {
297298 s = MCP .TRANSLATOR .translateKey ("options.enterValues" ) + "\n " + MCP .TRANSLATOR .translateKey ("options.enterValues.info" );
299+ // Default JOptionPane initial value for an array uses Object.toString
300+ // which prints "[Ljava.lang.String;@<hash>" — meaningless to users
301+ // and worse than an empty box. Render as the same comma-separated
302+ // form the parser accepts so it round-trips cleanly.
303+ String [] current = options .getStringArrayParameter (param );
304+ StringBuilder b = new StringBuilder ();
305+ if (current != null ) {
306+ for (int i = 0 ; i < current .length ; i ++) {
307+ if (i > 0 ) b .append ("," );
308+ b .append (Util .convertToEscapedString (current [i ]));
309+ }
310+ }
311+ initialValue = b .toString ();
312+ } else {
313+ initialValue = Util .convertToEscapedString (String .valueOf (options .getParameter (param )));
298314 }
299- String value = (String ) JOptionPane .showInputDialog (frame , s , param .getDesc (), JOptionPane .PLAIN_MESSAGE , null , null , Util . convertToEscapedString ( String . valueOf ( options . getParameter ( param ))) );
315+ String value = (String ) JOptionPane .showInputDialog (frame , s , param .getDesc (), JOptionPane .PLAIN_MESSAGE , null , null , initialValue );
300316 safeSetParameter (param , value );
301317 options .save ();
302318 }
0 commit comments