mirror of
https://github.com/SuspiciousActivity/ByteEdit.git
synced 2026-08-13 17:56:17 +00:00
Added stack frame and max computation (CTRL+O)
This commit is contained in:
1 parent
297a3d99c1
commit
6a8242958b
3 files changed
+86
-3
No files matched your search
@@ -6,6 +6,7 @@ import java.awt.EventQueue;
|
|||||||
import java.awt.Font;
|
import java.awt.Font;
|
||||||
import java.awt.GridLayout;
|
import java.awt.GridLayout;
|
||||||
import java.awt.HeadlessException;
|
import java.awt.HeadlessException;
|
||||||
|
import java.awt.Toolkit;
|
||||||
import java.awt.datatransfer.DataFlavor;
|
import java.awt.datatransfer.DataFlavor;
|
||||||
import java.awt.datatransfer.Transferable;
|
import java.awt.datatransfer.Transferable;
|
||||||
import java.awt.dnd.DropTarget;
|
import java.awt.dnd.DropTarget;
|
||||||
@@ -77,6 +78,7 @@ public class Main extends JFrame {
|
|||||||
|
|
||||||
public static RSyntaxTextArea textArea;
|
public static RSyntaxTextArea textArea;
|
||||||
public static SearchBox searchBox;
|
public static SearchBox searchBox;
|
||||||
|
public static OptionBox optionBox;
|
||||||
|
|
||||||
public static JTree tree;
|
public static JTree tree;
|
||||||
|
|
||||||
@@ -145,9 +147,11 @@ public class Main extends JFrame {
|
|||||||
public Main() {
|
public Main() {
|
||||||
INSTANCE = this;
|
INSTANCE = this;
|
||||||
searchBox = new SearchBox();
|
searchBox = new SearchBox();
|
||||||
|
optionBox = new OptionBox();
|
||||||
setTitle("ByteEdit");
|
setTitle("ByteEdit");
|
||||||
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
|
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
|
||||||
setBounds(100, 100, 813, 474);
|
setBounds((int) (Toolkit.getDefaultToolkit().getScreenSize().getWidth() / 2 - 407),
|
||||||
|
(int) (Toolkit.getDefaultToolkit().getScreenSize().getHeight() / 2 - 237), 814, 474);
|
||||||
try {
|
try {
|
||||||
UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());
|
UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
@@ -225,6 +229,13 @@ public class Main extends JFrame {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}, ctrlS, JComponent.WHEN_FOCUSED);
|
}, ctrlS, JComponent.WHEN_FOCUSED);
|
||||||
|
KeyStroke ctrlO = KeyStroke.getKeyStroke(KeyEvent.VK_O, KeyEvent.CTRL_DOWN_MASK);
|
||||||
|
textArea.registerKeyboardAction(new ActionListener() {
|
||||||
|
@Override
|
||||||
|
public void actionPerformed(ActionEvent e) {
|
||||||
|
optionBox.setVisible(true);
|
||||||
|
}
|
||||||
|
}, ctrlO, JComponent.WHEN_IN_FOCUSED_WINDOW);
|
||||||
textArea.setEditable(true);
|
textArea.setEditable(true);
|
||||||
textArea.setSyntaxEditingStyle(SyntaxConstants.SYNTAX_STYLE_JAVA_DISASSEMBLE);
|
textArea.setSyntaxEditingStyle(SyntaxConstants.SYNTAX_STYLE_JAVA_DISASSEMBLE);
|
||||||
textArea.setCodeFoldingEnabled(true);
|
textArea.setCodeFoldingEnabled(true);
|
||||||
@@ -417,8 +428,15 @@ public class Main extends JFrame {
|
|||||||
output.write(entry.getValue());
|
output.write(entry.getValue());
|
||||||
output.closeEntry();
|
output.closeEntry();
|
||||||
}
|
}
|
||||||
|
int computeFlags = 0;
|
||||||
|
if (optionBox.chckbxComputeFrames.isSelected()) {
|
||||||
|
computeFlags |= ClassWriter.COMPUTE_FRAMES;
|
||||||
|
}
|
||||||
|
if (optionBox.chckbxComputeMax.isSelected()) {
|
||||||
|
computeFlags |= ClassWriter.COMPUTE_MAXS;
|
||||||
|
}
|
||||||
for (ClassNode element : classes) {
|
for (ClassNode element : classes) {
|
||||||
ClassWriter writer = new ClassWriter(0);
|
ClassWriter writer = new ClassWriter(computeFlags);
|
||||||
element.accept(writer);
|
element.accept(writer);
|
||||||
output.putNextEntry(new JarEntry(element.name.replaceAll("\\.", "/") + ".class"));
|
output.putNextEntry(new JarEntry(element.name.replaceAll("\\.", "/") + ".class"));
|
||||||
output.write(writer.toByteArray());
|
output.write(writer.toByteArray());
|
||||||
|
|||||||
@@ -0,0 +1,63 @@
|
|||||||
|
package me.ByteEdit.main;
|
||||||
|
|
||||||
|
import java.awt.BorderLayout;
|
||||||
|
import java.awt.EventQueue;
|
||||||
|
import java.awt.Toolkit;
|
||||||
|
|
||||||
|
import javax.swing.JFrame;
|
||||||
|
import javax.swing.JPanel;
|
||||||
|
import javax.swing.UIManager;
|
||||||
|
import javax.swing.border.EmptyBorder;
|
||||||
|
import javax.swing.JLabel;
|
||||||
|
import javax.swing.JCheckBox;
|
||||||
|
|
||||||
|
public class OptionBox extends JFrame {
|
||||||
|
|
||||||
|
private JPanel contentPane;
|
||||||
|
public JCheckBox chckbxComputeFrames;
|
||||||
|
public JCheckBox chckbxComputeMax;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Launch the application.
|
||||||
|
*/
|
||||||
|
public static void main(String[] args) {
|
||||||
|
EventQueue.invokeLater(new Runnable() {
|
||||||
|
public void run() {
|
||||||
|
try {
|
||||||
|
OptionBox frame = new OptionBox();
|
||||||
|
frame.setVisible(true);
|
||||||
|
} catch (Exception e) {
|
||||||
|
e.printStackTrace();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Create the frame.
|
||||||
|
*/
|
||||||
|
public OptionBox() {
|
||||||
|
try {
|
||||||
|
UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());
|
||||||
|
} catch (Exception e) {
|
||||||
|
e.printStackTrace();
|
||||||
|
}
|
||||||
|
setResizable(false);
|
||||||
|
setTitle("Options");
|
||||||
|
setDefaultCloseOperation(JFrame.HIDE_ON_CLOSE);
|
||||||
|
setBounds((int) (Toolkit.getDefaultToolkit().getScreenSize().getWidth() / 2 - 150),
|
||||||
|
(int) (Toolkit.getDefaultToolkit().getScreenSize().getHeight() / 2 - 100), 300, 200);
|
||||||
|
contentPane = new JPanel();
|
||||||
|
contentPane.setBorder(new EmptyBorder(5, 5, 5, 5));
|
||||||
|
setContentPane(contentPane);
|
||||||
|
contentPane.setLayout(null);
|
||||||
|
|
||||||
|
chckbxComputeFrames = new JCheckBox("Compute Frames");
|
||||||
|
chckbxComputeFrames.setBounds(6, 7, 138, 23);
|
||||||
|
contentPane.add(chckbxComputeFrames);
|
||||||
|
|
||||||
|
chckbxComputeMax = new JCheckBox("Compute Max");
|
||||||
|
chckbxComputeMax.setBounds(6, 33, 138, 23);
|
||||||
|
contentPane.add(chckbxComputeMax);
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -1,5 +1,6 @@
|
|||||||
package me.ByteEdit.main;
|
package me.ByteEdit.main;
|
||||||
|
|
||||||
|
import java.awt.Toolkit;
|
||||||
import java.awt.event.ActionEvent;
|
import java.awt.event.ActionEvent;
|
||||||
import java.awt.event.ActionListener;
|
import java.awt.event.ActionListener;
|
||||||
import java.awt.event.KeyEvent;
|
import java.awt.event.KeyEvent;
|
||||||
@@ -35,7 +36,8 @@ public class SearchBox extends JFrame {
|
|||||||
setResizable(false);
|
setResizable(false);
|
||||||
setTitle("Find/Replace");
|
setTitle("Find/Replace");
|
||||||
setDefaultCloseOperation(JFrame.HIDE_ON_CLOSE);
|
setDefaultCloseOperation(JFrame.HIDE_ON_CLOSE);
|
||||||
setBounds(100, 100, 256, 263);
|
setBounds((int) (Toolkit.getDefaultToolkit().getScreenSize().getWidth() / 2 - 128),
|
||||||
|
(int) (Toolkit.getDefaultToolkit().getScreenSize().getHeight() / 2 - 181), 256, 262);
|
||||||
contentPane = new JPanel();
|
contentPane = new JPanel();
|
||||||
contentPane.setBorder(new EmptyBorder(5, 5, 5, 5));
|
contentPane.setBorder(new EmptyBorder(5, 5, 5, 5));
|
||||||
setContentPane(contentPane);
|
setContentPane(contentPane);
|
||||||
|
|||||||
Reference in new issue
Block a user