?? jvmsimulator.java
字號:
case OpCode.DMUL: explanationLabel.setLabelText(StringTable.dmulText); break; case OpCode.DSTORE: explanationLabel.setLabelText(StringTable.dstoreText); break; case OpCode.DSTORE_0: explanationLabel.setLabelText(StringTable.dstore_0Text); break; case OpCode.DSTORE_2: explanationLabel.setLabelText(StringTable.dstore_2Text); break; case OpCode.DSUB: explanationLabel.setLabelText(StringTable.dsubText); break; case OpCode.FCONST_0: explanationLabel.setLabelText(StringTable.fconst_0Text); break; case OpCode.FCONST_2: explanationLabel.setLabelText(StringTable.fconst_2Text); break; case OpCode.FLOAD_0: explanationLabel.setLabelText(StringTable.fload_0Text); break; case OpCode.FMUL: explanationLabel.setLabelText(StringTable.fmulText); break; case OpCode.FSTORE_0: explanationLabel.setLabelText(StringTable.fstore_0Text); break; case OpCode.FSUB: explanationLabel.setLabelText(StringTable.fsubText); break; case OpCode.GETSTATIC: explanationLabel.setLabelText(StringTable.getstaticText); break; case OpCode.GOTO: explanationLabel.setLabelText(StringTable.gotoText); break; case OpCode.IADD: explanationLabel.setLabelText(StringTable.iaddText); break; case OpCode.IAND: explanationLabel.setLabelText(StringTable.iandText); break; case OpCode.IASTORE: explanationLabel.setLabelText(StringTable.iastoreText); break; case OpCode.ICONST_M1: explanationLabel.setLabelText(StringTable.iconst_m1Text); break; case OpCode.ICONST_0: explanationLabel.setLabelText(StringTable.iconst_0Text); break; case OpCode.ICONST_1: explanationLabel.setLabelText(StringTable.iconst_1Text); break; case OpCode.ICONST_2: explanationLabel.setLabelText(StringTable.iconst_2Text); break; case OpCode.ICONST_3: explanationLabel.setLabelText(StringTable.iconst_3Text); break; case OpCode.ICONST_4: explanationLabel.setLabelText(StringTable.iconst_4Text); break; case OpCode.ICONST_5: explanationLabel.setLabelText(StringTable.iconst_5Text); break; case OpCode.IF_ICMPGT: explanationLabel.setLabelText(StringTable.if_icmpgtText); break; case OpCode.IF_ICMPLT: explanationLabel.setLabelText(StringTable.if_icmpltText); break; case OpCode.IF_ICMPNE: explanationLabel.setLabelText(StringTable.if_icmpneText); break; case OpCode.IDIV: explanationLabel.setLabelText(StringTable.idivText); break; case OpCode.IFEQ: explanationLabel.setLabelText(StringTable.ifeqText); break; case OpCode.IFLT: explanationLabel.setLabelText(StringTable.ifltText); break; case OpCode.IFNE: explanationLabel.setLabelText(StringTable.ifneText); break; case OpCode.IINC: explanationLabel.setLabelText(StringTable.iincText); break; case OpCode.ILOAD_0: explanationLabel.setLabelText(StringTable.iload_0Text); break; case OpCode.ILOAD_1: explanationLabel.setLabelText(StringTable.iload_1Text); break; case OpCode.ILOAD_2: explanationLabel.setLabelText(StringTable.iload_2Text); break; case OpCode.ILOAD_3: explanationLabel.setLabelText(StringTable.iload_3Text); break; case OpCode.IMUL: explanationLabel.setLabelText(StringTable.imulText); break; case OpCode.I2B: explanationLabel.setLabelText(StringTable.i2bText); break; case OpCode.INVOKESTATIC: explanationLabel.setLabelText(StringTable.invokestaticText); break; case OpCode.IOR: explanationLabel.setLabelText(StringTable.iorText); break; case OpCode.IREM: explanationLabel.setLabelText(StringTable.iremText); break; case OpCode.ISHL: explanationLabel.setLabelText(StringTable.ishlText); break; case OpCode.ISTORE: explanationLabel.setLabelText(StringTable.istoreText); break; case OpCode.ISTORE_0: explanationLabel.setLabelText(StringTable.istore_0Text); break; case OpCode.ISTORE_1: explanationLabel.setLabelText(StringTable.istore_1Text); break; case OpCode.ISTORE_2: explanationLabel.setLabelText(StringTable.istore_2Text); break; case OpCode.ISTORE_3: explanationLabel.setLabelText(StringTable.istore_3Text); break; case OpCode.IXOR: explanationLabel.setLabelText(StringTable.ixorText); break; case OpCode.JSR: explanationLabel.setLabelText(StringTable.jsrText); break; case OpCode.LADD: explanationLabel.setLabelText(StringTable.laddText); break; case OpCode.LCONST_1: explanationLabel.setLabelText(StringTable.lconst_1Text); break; case OpCode.LDC2_W: explanationLabel.setLabelText(StringTable.ldc2_wText); break; case OpCode.LLOAD: explanationLabel.setLabelText(StringTable.lloadText); break; case OpCode.LLOAD_0: explanationLabel.setLabelText(StringTable.lload_0Text); break; case OpCode.LLOAD_2: explanationLabel.setLabelText(StringTable.lload_2Text); break; case OpCode.LSTORE: explanationLabel.setLabelText(StringTable.lstoreText); break; case OpCode.LSTORE_0: explanationLabel.setLabelText(StringTable.lstore_0Text); break; case OpCode.LSTORE_2: explanationLabel.setLabelText(StringTable.lstore_2Text); break; case OpCode.MULTIANEWARRAY: explanationLabel.setLabelText(StringTable.multianewarrayText); break; case OpCode.POP: explanationLabel.setLabelText(StringTable.popText); break; case OpCode.RET: explanationLabel.setLabelText(StringTable.retText); break; case OpCode.TABLESWITCH: explanationLabel.setLabelText(StringTable.tableswitchText); break; default: explanationLabel.setLabelText(""); break; } } // Make pretty border around entire applet panel public Insets insets() { return new Insets(5, 5, 5, 5); } public boolean action(Event evt, Object arg) { if (evt.target instanceof Button) { String bname = (String) arg; if (bname.equals(StringTable.reset)) { stopButton.disable(); runButton.enable(); stepButton.enable(); resetButton.disable(); resetState(); updateStateDisplay(); } else if (bname.equals(StringTable.step)) { resetButton.enable(); try { pcRegister = currentMethod.executeNextInstruction(); } catch (BreakpointException be) { // Ignore this. User can reset. } updateStateDisplay(); } else if (bname.equals(StringTable.run)) { stopButton.enable(); runButton.disable(); stepButton.disable(); resetButton.disable(); if (runner == null) { runner = new Thread(this); runner.start(); } } else if (bname.equals(StringTable.stop)) { runButton.enable(); stepButton.enable(); resetButton.enable(); stopButton.disable(); if (runner != null) { // Synchronize on currentMethod to allow the thread // to complete execution of the current instruction before // killing it. synchronized (currentMethod) { runner.stop(); } runner = null; } } } return true; } public abstract int[] getTheProgram(); public abstract String[] getBytecodeMnemonics(); public abstract int getBytecodeViewSize(); public abstract int getMaxStack(); public abstract int getMaxLocals(); public abstract Color getMethodAreaColor(); public abstract Color getStackAreaColor(); public abstract Color getExplanationLabelColor(); public abstract Color getTitleColor(); public abstract Color getAppletBackgroundColor(); public abstract String getAppletTitle(); // Some methods don't have an exception table. They can // use this default implementation of getExceptionTable public ExceptionTableEntry[] getExceptionTable() { return null; } // All methods have a constant pool, but not all simulations // use it. Those that don't use a constant pool can // use this default implementation of getConstantPool public ConstantPoolEntry[] getConstantPool() { return null; }}
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -