class javax.swing.plaf.basic.BasicPopupMenuUI$BasicMenuKeyListener implements javax.swing.event.MenuKeyListener
  minor version: 0
  major version: 59
  flags: flags: (0x0020) ACC_SUPER
  this_class: javax.swing.plaf.basic.BasicPopupMenuUI$BasicMenuKeyListener
  super_class: java.lang.Object
{
  javax.swing.MenuElement menuToOpen;
    descriptor: Ljavax/swing/MenuElement;
    flags: (0x0000) 

  final javax.swing.plaf.basic.BasicPopupMenuUI this$0;
    descriptor: Ljavax/swing/plaf/basic/BasicPopupMenuUI;
    flags: (0x1010) ACC_FINAL, ACC_SYNTHETIC

  private void <init>(javax.swing.plaf.basic.BasicPopupMenuUI);
    descriptor: (Ljavax/swing/plaf/basic/BasicPopupMenuUI;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // javax.swing.plaf.basic.BasicPopupMenuUI$BasicMenuKeyListener this
         0: .line 283
            aload 0 /* this */
            aload 1
            putfield javax.swing.plaf.basic.BasicPopupMenuUI$BasicMenuKeyListener.this$0:Ljavax/swing/plaf/basic/BasicPopupMenuUI;
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 284
            aload 0 /* this */
            aconst_null
            putfield javax.swing.plaf.basic.BasicPopupMenuUI$BasicMenuKeyListener.menuToOpen:Ljavax/swing/MenuElement;
         2: .line 283
            return
        end local 0 // javax.swing.plaf.basic.BasicPopupMenuUI$BasicMenuKeyListener this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Ljavax/swing/plaf/basic/BasicPopupMenuUI$BasicMenuKeyListener;
    MethodParameters:
        Name  Flags
      this$0  final

  public void menuKeyTyped(javax.swing.event.MenuKeyEvent);
    descriptor: (Ljavax/swing/event/MenuKeyEvent;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=6, args_size=2
        start local 0 // javax.swing.plaf.basic.BasicPopupMenuUI$BasicMenuKeyListener this
        start local 1 // javax.swing.event.MenuKeyEvent e
         0: .line 287
            aload 0 /* this */
            getfield javax.swing.plaf.basic.BasicPopupMenuUI$BasicMenuKeyListener.menuToOpen:Ljavax/swing/MenuElement;
            ifnull 13
         1: .line 289
            aload 0 /* this */
            getfield javax.swing.plaf.basic.BasicPopupMenuUI$BasicMenuKeyListener.menuToOpen:Ljavax/swing/MenuElement;
            checkcast javax.swing.JMenu
            invokevirtual javax.swing.JMenu.getPopupMenu:()Ljavax/swing/JPopupMenu;
            astore 2 /* subpopup */
        start local 2 // javax.swing.JPopupMenu subpopup
         2: .line 291
            aload 2 /* subpopup */
            invokevirtual javax.swing.JPopupMenu.getSubElements:()[Ljavax/swing/MenuElement;
            iconst_m1
            iconst_1
         3: .line 290
            invokestatic javax.swing.plaf.basic.BasicPopupMenuUI.findEnabledChild:([Ljavax/swing/MenuElement;IZ)Ljavax/swing/MenuElement;
            astore 3 /* subitem */
        start local 3 // javax.swing.MenuElement subitem
         4: .line 293
            new java.util.ArrayList
            dup
            aload 1 /* e */
            invokevirtual javax.swing.event.MenuKeyEvent.getPath:()[Ljavax/swing/MenuElement;
            invokestatic java.util.Arrays.asList:([Ljava/lang/Object;)Ljava/util/List;
            invokespecial java.util.ArrayList.<init>:(Ljava/util/Collection;)V
            astore 4 /* lst */
        start local 4 // java.util.ArrayList lst
         5: .line 294
            aload 4 /* lst */
            aload 0 /* this */
            getfield javax.swing.plaf.basic.BasicPopupMenuUI$BasicMenuKeyListener.menuToOpen:Ljavax/swing/MenuElement;
            invokevirtual java.util.ArrayList.add:(Ljava/lang/Object;)Z
            pop
         6: .line 295
            aload 4 /* lst */
            aload 2 /* subpopup */
            invokevirtual java.util.ArrayList.add:(Ljava/lang/Object;)Z
            pop
         7: .line 296
            aload 3 /* subitem */
            ifnull 9
         8: .line 297
            aload 4 /* lst */
            aload 3 /* subitem */
            invokevirtual java.util.ArrayList.add:(Ljava/lang/Object;)Z
            pop
         9: .line 299
      StackMap locals: javax.swing.JPopupMenu javax.swing.MenuElement java.util.ArrayList
      StackMap stack:
            iconst_0
            anewarray javax.swing.MenuElement
            astore 5 /* newPath */
        start local 5 // javax.swing.MenuElement[] newPath
        10: .line 300
            aload 4 /* lst */
            aload 5 /* newPath */
            invokevirtual java.util.ArrayList.toArray:([Ljava/lang/Object;)[Ljava/lang/Object;
            checkcast javax.swing.MenuElement[]
            astore 5 /* newPath */
        11: .line 301
            invokestatic javax.swing.MenuSelectionManager.defaultManager:()Ljavax/swing/MenuSelectionManager;
            aload 5 /* newPath */
            invokevirtual javax.swing.MenuSelectionManager.setSelectedPath:([Ljavax/swing/MenuElement;)V
        12: .line 302
            aload 1 /* e */
            invokevirtual javax.swing.event.MenuKeyEvent.consume:()V
        end local 5 // javax.swing.MenuElement[] newPath
        end local 4 // java.util.ArrayList lst
        end local 3 // javax.swing.MenuElement subitem
        end local 2 // javax.swing.JPopupMenu subpopup
        13: .line 304
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aconst_null
            putfield javax.swing.plaf.basic.BasicPopupMenuUI$BasicMenuKeyListener.menuToOpen:Ljavax/swing/MenuElement;
        14: .line 305
            return
        end local 1 // javax.swing.event.MenuKeyEvent e
        end local 0 // javax.swing.plaf.basic.BasicPopupMenuUI$BasicMenuKeyListener this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0   15     0      this  Ljavax/swing/plaf/basic/BasicPopupMenuUI$BasicMenuKeyListener;
            0   15     1         e  Ljavax/swing/event/MenuKeyEvent;
            2   13     2  subpopup  Ljavax/swing/JPopupMenu;
            4   13     3   subitem  Ljavax/swing/MenuElement;
            5   13     4       lst  Ljava/util/ArrayList<Ljavax/swing/MenuElement;>;
           10   13     5   newPath  [Ljavax/swing/MenuElement;
    MethodParameters:
      Name  Flags
      e     

  public void menuKeyPressed(javax.swing.event.MenuKeyEvent);
    descriptor: (Ljavax/swing/event/MenuKeyEvent;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=13, args_size=2
        start local 0 // javax.swing.plaf.basic.BasicPopupMenuUI$BasicMenuKeyListener this
        start local 1 // javax.swing.event.MenuKeyEvent e
         0: .line 308
            aload 1 /* e */
            invokevirtual javax.swing.event.MenuKeyEvent.getKeyChar:()C
            istore 2 /* keyChar */
        start local 2 // char keyChar
         1: .line 311
            iload 2 /* keyChar */
            invokestatic java.lang.Character.isLetterOrDigit:(C)Z
            ifne 3
         2: .line 312
            return
         3: .line 315
      StackMap locals: int
      StackMap stack:
            aload 1 /* e */
            invokevirtual javax.swing.event.MenuKeyEvent.getMenuSelectionManager:()Ljavax/swing/MenuSelectionManager;
            astore 3 /* manager */
        start local 3 // javax.swing.MenuSelectionManager manager
         4: .line 316
            aload 1 /* e */
            invokevirtual javax.swing.event.MenuKeyEvent.getPath:()[Ljavax/swing/MenuElement;
            astore 4 /* path */
        start local 4 // javax.swing.MenuElement[] path
         5: .line 317
            aload 0 /* this */
            getfield javax.swing.plaf.basic.BasicPopupMenuUI$BasicMenuKeyListener.this$0:Ljavax/swing/plaf/basic/BasicPopupMenuUI;
            getfield javax.swing.plaf.basic.BasicPopupMenuUI.popupMenu:Ljavax/swing/JPopupMenu;
            invokevirtual javax.swing.JPopupMenu.getSubElements:()[Ljavax/swing/MenuElement;
            astore 5 /* items */
        start local 5 // javax.swing.MenuElement[] items
         6: .line 318
            iconst_m1
            istore 6 /* currentIndex */
        start local 6 // int currentIndex
         7: .line 319
            iconst_0
            istore 7 /* matches */
        start local 7 // int matches
         8: .line 320
            iconst_m1
            istore 8 /* firstMatch */
        start local 8 // int firstMatch
         9: .line 321
            aconst_null
            astore 9 /* indexes */
        start local 9 // int[] indexes
        10: .line 323
            iconst_0
            istore 10 /* j */
        start local 10 // int j
        11: goto 29
        12: .line 324
      StackMap locals: javax.swing.plaf.basic.BasicPopupMenuUI$BasicMenuKeyListener javax.swing.event.MenuKeyEvent int javax.swing.MenuSelectionManager javax.swing.MenuElement[] javax.swing.MenuElement[] int int int int[] int
      StackMap stack:
            aload 5 /* items */
            iload 10 /* j */
            aaload
            instanceof javax.swing.JMenuItem
            ifne 14
        13: .line 325
            goto 28
        14: .line 327
      StackMap locals:
      StackMap stack:
            aload 5 /* items */
            iload 10 /* j */
            aaload
            checkcast javax.swing.JMenuItem
            astore 11 /* item */
        start local 11 // javax.swing.JMenuItem item
        15: .line 328
            aload 11 /* item */
            invokevirtual javax.swing.JMenuItem.getMnemonic:()I
            istore 12 /* mnemonic */
        start local 12 // int mnemonic
        16: .line 329
            aload 11 /* item */
            invokevirtual javax.swing.JMenuItem.isEnabled:()Z
            ifeq 26
        17: .line 330
            aload 11 /* item */
            invokevirtual javax.swing.JMenuItem.isVisible:()Z
            ifeq 26
            aload 0 /* this */
            iload 2 /* keyChar */
            invokevirtual javax.swing.plaf.basic.BasicPopupMenuUI$BasicMenuKeyListener.lower:(C)C
            aload 0 /* this */
            iload 12 /* mnemonic */
            invokevirtual javax.swing.plaf.basic.BasicPopupMenuUI$BasicMenuKeyListener.lower:(I)C
            if_icmpne 26
        18: .line 331
            iload 7 /* matches */
            ifne 22
        19: .line 332
            iload 10 /* j */
            istore 8 /* firstMatch */
        20: .line 333
            iinc 7 /* matches */ 1
        21: .line 334
            goto 26
        22: .line 335
      StackMap locals: javax.swing.JMenuItem int
      StackMap stack:
            aload 9 /* indexes */
            ifnonnull 25
        23: .line 336
            aload 5 /* items */
            arraylength
            newarray 10
            astore 9 /* indexes */
        24: .line 337
            aload 9 /* indexes */
            iconst_0
            iload 8 /* firstMatch */
            iastore
        25: .line 339
      StackMap locals:
      StackMap stack:
            aload 9 /* indexes */
            iload 7 /* matches */
            iinc 7 /* matches */ 1
            iload 10 /* j */
            iastore
        26: .line 342
      StackMap locals:
      StackMap stack:
            aload 11 /* item */
            invokevirtual javax.swing.JMenuItem.isArmed:()Z
            ifne 27
            aload 11 /* item */
            invokevirtual javax.swing.JMenuItem.isSelected:()Z
            ifeq 28
        27: .line 343
      StackMap locals:
      StackMap stack:
            iload 7 /* matches */
            iconst_1
            isub
            istore 6 /* currentIndex */
        end local 12 // int mnemonic
        end local 11 // javax.swing.JMenuItem item
        28: .line 323
      StackMap locals:
      StackMap stack:
            iinc 10 /* j */ 1
      StackMap locals:
      StackMap stack:
        29: iload 10 /* j */
            aload 5 /* items */
            arraylength
            if_icmplt 12
        end local 10 // int j
        30: .line 347
            iload 7 /* matches */
            ifeq 47
        31: .line 349
            iload 7 /* matches */
            iconst_1
            if_icmpne 41
        32: .line 351
            aload 5 /* items */
            iload 8 /* firstMatch */
            aaload
            checkcast javax.swing.JMenuItem
            astore 10 /* item */
        start local 10 // javax.swing.JMenuItem item
        33: .line 352
            aload 10 /* item */
            instanceof javax.swing.JMenu
            ifeq 36
        34: .line 354
            aload 0 /* this */
            aload 10 /* item */
            putfield javax.swing.plaf.basic.BasicPopupMenuUI$BasicMenuKeyListener.menuToOpen:Ljavax/swing/MenuElement;
        35: .line 355
            goto 39
      StackMap locals: javax.swing.plaf.basic.BasicPopupMenuUI$BasicMenuKeyListener javax.swing.event.MenuKeyEvent int javax.swing.MenuSelectionManager javax.swing.MenuElement[] javax.swing.MenuElement[] int int int int[] javax.swing.JMenuItem
      StackMap stack:
        36: aload 10 /* item */
            invokevirtual javax.swing.JMenuItem.isEnabled:()Z
            ifeq 39
        37: .line 357
            aload 3 /* manager */
            invokevirtual javax.swing.MenuSelectionManager.clearSelectedPath:()V
        38: .line 358
            aload 10 /* item */
            invokevirtual javax.swing.JMenuItem.doClick:()V
        39: .line 360
      StackMap locals:
      StackMap stack:
            aload 1 /* e */
            invokevirtual javax.swing.event.MenuKeyEvent.consume:()V
        end local 10 // javax.swing.JMenuItem item
        40: .line 361
            goto 47
        41: .line 367
      StackMap locals:
      StackMap stack:
            aload 5 /* items */
            aload 9 /* indexes */
            iload 6 /* currentIndex */
            iconst_1
            iadd
            iload 7 /* matches */
            irem
            iaload
            aaload
            astore 10 /* newItem */
        start local 10 // javax.swing.MenuElement newItem
        42: .line 369
            aload 4 /* path */
            arraylength
            iconst_1
            iadd
            anewarray javax.swing.MenuElement
            astore 11 /* newPath */
        start local 11 // javax.swing.MenuElement[] newPath
        43: .line 370
            aload 4 /* path */
            iconst_0
            aload 11 /* newPath */
            iconst_0
            aload 4 /* path */
            arraylength
            invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
        44: .line 371
            aload 11 /* newPath */
            aload 4 /* path */
            arraylength
            aload 10 /* newItem */
            aastore
        45: .line 372
            aload 3 /* manager */
            aload 11 /* newPath */
            invokevirtual javax.swing.MenuSelectionManager.setSelectedPath:([Ljavax/swing/MenuElement;)V
        46: .line 373
            aload 1 /* e */
            invokevirtual javax.swing.event.MenuKeyEvent.consume:()V
        end local 11 // javax.swing.MenuElement[] newPath
        end local 10 // javax.swing.MenuElement newItem
        47: .line 375
      StackMap locals:
      StackMap stack:
            return
        end local 9 // int[] indexes
        end local 8 // int firstMatch
        end local 7 // int matches
        end local 6 // int currentIndex
        end local 5 // javax.swing.MenuElement[] items
        end local 4 // javax.swing.MenuElement[] path
        end local 3 // javax.swing.MenuSelectionManager manager
        end local 2 // char keyChar
        end local 1 // javax.swing.event.MenuKeyEvent e
        end local 0 // javax.swing.plaf.basic.BasicPopupMenuUI$BasicMenuKeyListener this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0   48     0          this  Ljavax/swing/plaf/basic/BasicPopupMenuUI$BasicMenuKeyListener;
            0   48     1             e  Ljavax/swing/event/MenuKeyEvent;
            1   48     2       keyChar  C
            4   48     3       manager  Ljavax/swing/MenuSelectionManager;
            5   48     4          path  [Ljavax/swing/MenuElement;
            6   48     5         items  [Ljavax/swing/MenuElement;
            7   48     6  currentIndex  I
            8   48     7       matches  I
            9   48     8    firstMatch  I
           10   48     9       indexes  [I
           11   30    10             j  I
           15   28    11          item  Ljavax/swing/JMenuItem;
           16   28    12      mnemonic  I
           33   40    10          item  Ljavax/swing/JMenuItem;
           42   47    10       newItem  Ljavax/swing/MenuElement;
           43   47    11       newPath  [Ljavax/swing/MenuElement;
    MethodParameters:
      Name  Flags
      e     

  public void menuKeyReleased(javax.swing.event.MenuKeyEvent);
    descriptor: (Ljavax/swing/event/MenuKeyEvent;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=0, locals=2, args_size=2
        start local 0 // javax.swing.plaf.basic.BasicPopupMenuUI$BasicMenuKeyListener this
        start local 1 // javax.swing.event.MenuKeyEvent e
         0: .line 378
            return
        end local 1 // javax.swing.event.MenuKeyEvent e
        end local 0 // javax.swing.plaf.basic.BasicPopupMenuUI$BasicMenuKeyListener this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Ljavax/swing/plaf/basic/BasicPopupMenuUI$BasicMenuKeyListener;
            0    1     1     e  Ljavax/swing/event/MenuKeyEvent;
    MethodParameters:
      Name  Flags
      e     

  private char lower(char);
    descriptor: (C)C
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=1, locals=2, args_size=2
        start local 0 // javax.swing.plaf.basic.BasicPopupMenuUI$BasicMenuKeyListener this
        start local 1 // char keyChar
         0: .line 381
            iload 1 /* keyChar */
            invokestatic java.lang.Character.toLowerCase:(C)C
            ireturn
        end local 1 // char keyChar
        end local 0 // javax.swing.plaf.basic.BasicPopupMenuUI$BasicMenuKeyListener this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    1     0     this  Ljavax/swing/plaf/basic/BasicPopupMenuUI$BasicMenuKeyListener;
            0    1     1  keyChar  C
    MethodParameters:
         Name  Flags
      keyChar  

  private char lower(int);
    descriptor: (I)C
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=1, locals=2, args_size=2
        start local 0 // javax.swing.plaf.basic.BasicPopupMenuUI$BasicMenuKeyListener this
        start local 1 // int mnemonic
         0: .line 385
            iload 1 /* mnemonic */
            i2c
            invokestatic java.lang.Character.toLowerCase:(C)C
            ireturn
        end local 1 // int mnemonic
        end local 0 // javax.swing.plaf.basic.BasicPopupMenuUI$BasicMenuKeyListener this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    1     0      this  Ljavax/swing/plaf/basic/BasicPopupMenuUI$BasicMenuKeyListener;
            0    1     1  mnemonic  I
    MethodParameters:
          Name  Flags
      mnemonic  
}
SourceFile: "BasicPopupMenuUI.java"
NestHost: javax.swing.plaf.basic.BasicPopupMenuUI
InnerClasses:
  private BasicMenuKeyListener = javax.swing.plaf.basic.BasicPopupMenuUI$BasicMenuKeyListener of javax.swing.plaf.basic.BasicPopupMenuUI