0da1c5dcca
First commit of the 4.5 version (latest version available)
67 lines
1.7 KiB
Java
67 lines
1.7 KiB
Java
package mars.tools;
|
|
|
|
import java.awt.BorderLayout;
|
|
import java.awt.EventQueue;
|
|
|
|
import javax.swing.JFrame;
|
|
import javax.swing.JPanel;
|
|
import javax.swing.border.EmptyBorder;
|
|
|
|
public class FunctionUnitVisualization extends JFrame {
|
|
|
|
private JPanel contentPane;
|
|
private String instruction;
|
|
private int register = 1;
|
|
private int control = 2;
|
|
private int aluControl = 3;
|
|
private int alu = 4;
|
|
private int currentUnit;
|
|
|
|
/**
|
|
* Launch the application.
|
|
*/
|
|
|
|
|
|
/**
|
|
* Create the frame.
|
|
*/
|
|
public FunctionUnitVisualization(String instruction, int functionalUnit) {
|
|
this.instruction = instruction;
|
|
//setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
|
|
setBounds(100, 100, 840, 575);
|
|
contentPane = new JPanel();
|
|
contentPane.setBorder(new EmptyBorder(5, 5, 5, 5));
|
|
contentPane.setLayout(new BorderLayout(0, 0));
|
|
setContentPane(contentPane);
|
|
if(functionalUnit == register){
|
|
currentUnit = register;
|
|
UnitAnimation reg = new UnitAnimation(instruction, register);
|
|
contentPane.add(reg);
|
|
reg.startAnimation(instruction);
|
|
}
|
|
else if(functionalUnit == control){
|
|
currentUnit = control;
|
|
UnitAnimation reg = new UnitAnimation(instruction, control);
|
|
contentPane.add(reg);
|
|
reg.startAnimation(instruction);
|
|
}
|
|
|
|
else if(functionalUnit == aluControl){
|
|
currentUnit = aluControl;
|
|
UnitAnimation reg = new UnitAnimation(instruction, aluControl);
|
|
contentPane.add(reg);
|
|
reg.startAnimation(instruction);
|
|
}
|
|
|
|
}
|
|
public void run() {
|
|
try {
|
|
FunctionUnitVisualization frame = new FunctionUnitVisualization(instruction, currentUnit);
|
|
frame.setVisible(true);
|
|
} catch (Exception e) {
|
|
e.printStackTrace();
|
|
}
|
|
}
|
|
|
|
}
|