diff --git a/src/main/java/the/bytecode/club/bytecodeviewer/gui/components/MethodsRenderer.java b/src/main/java/the/bytecode/club/bytecodeviewer/gui/components/MethodsRenderer.java index 31b503d3..e63fa900 100644 --- a/src/main/java/the/bytecode/club/bytecodeviewer/gui/components/MethodsRenderer.java +++ b/src/main/java/the/bytecode/club/bytecodeviewer/gui/components/MethodsRenderer.java @@ -1,9 +1,12 @@ package the.bytecode.club.bytecodeviewer.gui.components; import java.awt.Component; +import java.util.List; import javax.swing.JLabel; import javax.swing.JList; import javax.swing.ListCellRenderer; + +import the.bytecode.club.bytecodeviewer.gui.resourceviewer.BytecodeViewPanel; import the.bytecode.club.bytecodeviewer.gui.util.BytecodeViewPanelUpdater; import the.bytecode.club.bytecodeviewer.util.MethodParser; @@ -44,8 +47,16 @@ public class MethodsRenderer extends JLabel implements ListCellRenderer public Component getListCellRendererComponent(JList list, Object value, int index, boolean isSelected, boolean cellHasFocus) { - MethodParser methods = bytecodeViewPanelUpdater.viewer.methods.get(bytecodeViewPanelUpdater.bytecodeViewPanel.decompiler.ordinal()); - MethodParser.Method method = methods.getMethod((Integer) value); + int methodIndex = (Integer) value; + MethodParser methods; + List methodParsers = bytecodeViewPanelUpdater.viewer.methods; + BytecodeViewPanel bytecodeViewPanel = bytecodeViewPanelUpdater.bytecodeViewPanel; + try { + methods = methodParsers.get(bytecodeViewPanel.decompiler.ordinal()); + } catch (ArrayIndexOutOfBoundsException e) { + methods = methodParsers.get(bytecodeViewPanel.panelIndex); + } + MethodParser.Method method = methods.getMethod(methodIndex); setText(method.toString()); return this; }