Resolved JFrameConsole Text Bug

This fixes the bug with large Strings causing the swing thread to lock up
This commit is contained in:
Konloch 2021-07-12 06:18:55 -07:00
parent eab804ff7f
commit 106549658f
2 changed files with 19 additions and 3 deletions

View File

@ -64,7 +64,7 @@ public class JFrameConsole extends JFrame
*/ */
public void setText(String t) public void setText(String t)
{ {
textArea.setText(t); textArea.setText(trim(t));
textArea.setCaretPosition(0); textArea.setCaretPosition(0);
} }
@ -73,5 +73,19 @@ public class JFrameConsole extends JFrame
return textArea; return textArea;
} }
public String trim(String s)
{
int len = s.length();
int max = 500_000; //TODO this can be increased to 1,000,000 the lower number was chosen to be safe
if(len >= max)
{
int skipped = len - max;
s = s.substring(0, max);
s += "\n\rSkipping " + skipped + " chars, allowing " + max;
}
return s;
}
private static final long serialVersionUID = -5056940543411437508L; private static final long serialVersionUID = -5056940543411437508L;
} }

View File

@ -11,6 +11,8 @@ import the.bytecode.club.bytecodeviewer.BytecodeViewer;
import the.bytecode.club.bytecodeviewer.api.Plugin; import the.bytecode.club.bytecodeviewer.api.Plugin;
import the.bytecode.club.bytecodeviewer.api.PluginConsole; import the.bytecode.club.bytecodeviewer.api.PluginConsole;
import javax.swing.*;
import static the.bytecode.club.bytecodeviewer.Constants.*; import static the.bytecode.club.bytecodeviewer.Constants.*;
/*************************************************************************** /***************************************************************************
@ -95,8 +97,8 @@ public class ShowAllStrings extends Plugin
} }
} }
} }
frame.appendText(sb.toString()); frame.setText(sb.toString());
frame.setVisible(true); frame.setVisible(true);
} }
} }