?? ui.java.svn-base
字號:
jtfPrintQueue.setEditable(false);
jtfPrintQueue.setHorizontalAlignment(JTextField.RIGHT);
}
return jtfPrintQueue;
}
/**
* This method initializes jpQueueMoniter
*
* @return javax.swing.JPanel
*/
private JPanel getJpQueueMoniter() {
if (jpQueueMoniter == null) {
jpQueueMoniter = new JPanel();
jpQueueMoniter.setLayout(null);
jpQueueMoniter.setLocation(new Point(270, 380));
jpQueueMoniter.setSize(new Dimension(300, 85));
jpQueueMoniter.add(getJpPrintQueue(), null);
jpQueueMoniter.add(getJpReadyQueue(), null);
jpQueueMoniter.add(getJpInputQueue(), null);
}
return jpQueueMoniter;
}
/**
* This method initializes jpButtons
*
* @return javax.swing.JPanel
*/
private JPanel getJpButtons() {
if (jpButtons == null) {
jpButtons = new JPanel();
jpButtons.setLayout(null);
jpButtons.setPreferredSize(new Dimension(250, 55));
jpButtons.add(getJbExecute(), null);
jpButtons.add(getJbSave(), null);
jpButtons.add(getJbLoad(), null);
jpButtons.add(getJbClear(), null);
}
return jpButtons;
}
/**
* This method initializes jbExecute
*
* @return javax.swing.JButton
*/
private JButton getJbExecute() {
if (jbExecute == null) {
jbExecute = new JButton();
jbExecute.setText("Execute");
jbExecute.setSize(new Dimension(150, 25));
jbExecute.setLocation(new Point(50, 30));
jbExecute.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent e) {
mem.addProcess(new BufferedReader(new StringReader(getJtaProcessEditer().getText())));
}
});
}
return jbExecute;
}
/**
* This method initializes jbSave
*
* @return javax.swing.JButton
*/
private JButton getJbSave() {
if (jbSave == null) {
jbSave = new JButton();
jbSave.setText("Save");
jbSave.setSize(new Dimension(70, 25));
jbSave.setLocation(new Point(90, 0));
jbSave.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
JFileChooser chooser = new JFileChooser("./");
chooser.addChoosableFileFilter(new FileNameExtensionFilter("Assemble Language File", "asm", "jii"));
chooser.setFileSelectionMode(JFileChooser.FILES_ONLY);
chooser.setMultiSelectionEnabled(false);
int option = chooser.showSaveDialog(UI.this);
if(option == JFileChooser.APPROVE_OPTION) {
File file = chooser.getSelectedFile();
if(file != null) {
try {
file.createNewFile();
FileWriter writer = new FileWriter(file, false);
writer.write(getJtaProcessEditer().getText());
writer.close();
} catch (IOException e1) {
e1.printStackTrace();
}
}
}
}
});
}
return jbSave;
}
/**
* This method initializes jbLoad
*
* @return javax.swing.JButton
*/
private JButton getJbLoad() {
if (jbLoad == null) {
jbLoad = new JButton();
jbLoad.setPreferredSize(new Dimension(70, 30));
jbLoad.setMnemonic(KeyEvent.VK_UNDEFINED);
jbLoad.setLocation(new Point(170, 0));
jbLoad.setSize(new Dimension(70, 25));
jbLoad.setText("Load");
jbLoad.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(ActionEvent e) {
JFileChooser chooser = new JFileChooser("./");
chooser.addChoosableFileFilter(new FileNameExtensionFilter("Assemble Language File", "asm", "jii"));
chooser.setFileSelectionMode(JFileChooser.FILES_ONLY);
chooser.setMultiSelectionEnabled(false);
int option = chooser.showOpenDialog(UI.this);
if(option == JFileChooser.APPROVE_OPTION) {
File file = chooser.getSelectedFile();
if(file.exists()) {
try {
BufferedReader reader = new BufferedReader(new FileReader(file));
String s;
getJtaProcessEditer().setText("");
while((s = reader.readLine()) != null)
getJtaProcessEditer().append(s + '\n');
reader.close();
} catch (IOException e1) {
e1.printStackTrace();
}
}
}
}
});
}
return jbLoad;
}
/**
* This method initializes jbClear
*
* @return javax.swing.JButton
*/
private JButton getJbClear() {
if (jbClear == null) {
jbClear = new JButton();
jbClear.setText("Clear");
jbClear.setLocation(new Point(10, 0));
jbClear.setSize(new Dimension(70, 25));
jbClear.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent e) {
getJtaProcessEditer().setText("");
}
});
}
return jbClear;
}
public void setParameters(PCB pcb, SynchronizedQueue readyQueue, SynchronizedQueue inputQueue, SynchronizedQueue printQueue, Keyboard keyboard, Memory mem) {
this.pcb = pcb;
this.readyQueue = readyQueue;
this.inputQueue = inputQueue;
this.printQueue = printQueue;
//this.keyboard = keyboard;
this.mc = keyboard.getMc();
this.mem = mem;
}
public void updatePCB() {
getJtfProcessID().setText(new Integer(pcb.getProcessID()).toString());
getJtfPC().setText(pcb.getRegisters().getPc().toString());
getJtfAC().setText(pcb.getRegisters().getAc().toString());
int n = pcb.getRegisters().getPsw().getState();
int m = HALT;
for(int j = 0; j < jlPSWs.length; j++) {
jlPSWs[j].setText((n & m) == 0 ? "0" : "1");
m /= 2;
}
getJtfIR().setText(pcb.getRegisters().getIr().toString());
getJtfR0().setText(pcb.getRegisters().getRn(0).toString());
getJtfR1().setText(pcb.getRegisters().getRn(1).toString());
getJtfR2().setText(pcb.getRegisters().getRn(2).toString());
getJtfR3().setText(pcb.getRegisters().getRn(3).toString());
getJtfR4().setText(pcb.getRegisters().getRn(4).toString());
getJtfR5().setText(pcb.getRegisters().getRn(5).toString());
getJtfR6().setText(pcb.getRegisters().getRn(6).toString());
getJtfR7().setText(pcb.getRegisters().getRn(7).toString());
}
public void updateQueue() {
getJtfReadyQueue().setText(readyQueue.toString());
getJtfInputQueue().setText(inputQueue.toString());
getJtfPrintQueue().setText(printQueue.toString());
}
public void setJlInputText(String s) {
jlInput.setText("Input" + s);
}
public synchronized void print(String s) {
getJtaPrinter().append(s);
}
public synchronized void clearPrinter() {
getJtaPrinter().setText("");
}
public synchronized void display(String s) {
getJtaConsole().append(s + '\n');
}
/**
* This method initializes jpPSWS
*
* @return javax.swing.JPanel
*/
private JPanel getJpPSWS() {
if (jpPSWS == null) {
jpPSWS = new JPanel();
jpPSWS.setLayout(new GridBagLayout());
jpPSWS.setLocation(new Point(40, 0));
jpPSWS.setSize(new Dimension(205, 25));
for(int i = 0; i < jlPSWs.length; i++) {
jlPSWs[i] = new JLabel();
jlPSWs[i].setHorizontalAlignment(SwingConstants.RIGHT);
jlPSWs[i].setHorizontalTextPosition(SwingConstants.RIGHT);
jlPSWs[i].setText("");
jlPSWs[i].setBorder(BorderFactory.createLineBorder(Color.lightGray, 1));
jlPSWs[i].setPreferredSize(new Dimension(25, 22));
jpPSWS.add(jlPSWs[i], null);
}
}
return jpPSWS;
}
/**
* This method initializes jpControll
*
* @return javax.swing.JPanel
*/
private JPanel getJpControll() {
if (jpControll == null) {
jlControllButton = new JLabel();
jlControllButton.setText("Controll Buttons");
jlControllButton.setPreferredSize(new Dimension(34, 20));
jpControll = new JPanel();
jpControll.setLayout(new BorderLayout());
jpControll.setSize(new Dimension(250, 120));
jpControll.setLocation(new Point(580, 415));
jpControll.add(jlControllButton, BorderLayout.NORTH);
jpControll.add(getJpControllButton(), BorderLayout.CENTER);
}
return jpControll;
}
/**
* This method initializes jpControllButton
*
* @return javax.swing.JPanel
*/
private JPanel getJpControllButton() {
if (jpControllButton == null) {
jpControllButton = new JPanel();
jpControllButton.setLayout(null);
jpControllButton.add(getJpMunal(), null);
jpControllButton.add(getJpAuto(), null);
ButtonGroup bg = new ButtonGroup();
bg.add(getJrbAutoMode());
bg.add(getJrbManualMode());
}
return jpControllButton;
}
/**
* This method initializes jpAutoMode
*
* @return javax.swing.JPanel
*/
private JPanel getJpAutoMode() {
if (jpAutoMode == null) {
jlAutoMode = new JLabel();
jlAutoMode.setText("Auto");
jlAutoMode.setHorizontalTextPosition(SwingConstants.CENTER);
jlAutoMode.setHorizontalAlignment(SwingConstants.CENTER);
jpAutoMode = new JPanel();
jpAutoMode.setLayout(new BorderLayout());
jpAutoMode.setPreferredSize(new Dimension(75, 25));
jpAutoMode.add(getJrbAutoMode(), BorderLayout.WEST);
jpAutoMode.add(jlAutoMode, java.awt.BorderLayout.CENTER);
}
return jpAutoMode;
}
/**
* This method initializes jrbAutoMode
*
* @return javax.swing.JRadioButton
*/
private JRadioButton getJrbAutoMode() {
if (jrbAutoMode == null) {
jrbAutoMode = new JRadioButton();
jrbAutoMode.setSelected(true);
jrbAutoMode.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent e) {
getJbNext().setEnabled(false);
getJtfAuto().setEnabled(true);
mode.setMode(RunningMode.AUTO);
//System.out.println("actionPerformed()"); // TODO Auto-generated Event stub actionPerformed()
}
});
}
return jrbAutoMode;
}
/**
* This method initializes jpManualMode
*
* @return javax.swing.JPanel
*/
private JPanel getJpManualMode() {
if (jpManualMode == null) {
jlManualMode = new JLabel();
jlManualMode.setHorizontalAlignment(SwingConstants.CENTER);
jlManualMode.setText("Manual");
jlManualMode.setHorizontalTextPosition(SwingConstants.CENTER);
jpManualMode = new JPanel();
jpManualMode.setLayout(new BorderLayout());
jpManualMode.setPreferredSize(new Dimension(75, 25));
jpManualMode.add(getJrbManualMode(), BorderLayout.WEST);
jpManualMode.add(jlManualMode, BorderLayout.CENTER);
}
return jpManualMode;
}
/**
* This method initializes jrbManualMode
*
* @return javax.swing.JRadioButton
*/
private JRadioButton getJrbManualMode() {
if (jrbManualMode == null) {
jrbManualMode = new JRadioButton();
jrbManualMode.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent e) {
getJbNext().setEnabled(true);
getJtfAuto().setEnabled(false);
mode.setMode(RunningMode.MANUAL);
//System.out.println("actionPerformed()"); // TODO Auto-generated Event stub actionPerformed()
}
});
}
return jrbManualMode;
}
/**
* This method initializes jbNext
*
* @return javax.swing.JButton
*/
private JButton getJbNext() {
if (jbNext == null) {
jbNext = new JButton();
jbNext.setPreferredSize(new Dimension(75, 25));
jbNext.setEnabled(false);
jbNext.setText("Next");
jbNext.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent e) {
getJbNext().setEnabled(false);
mode.setButtonPressed(true);
System.out.println("actionPerformed()"); // TODO Auto-generated Event stub actionPerformed()
}
});
}
return jbNext;
}
/**
* This method initializes jtfAuto
*
* @return javax.swing.JTextField
*/
private JTextField getJtfAuto() {
if (jtfAuto == null) {
jtfAuto = new JTextField();
jtfAuto.setPreferredSize(new Dimension(75, 25));
jtfAuto.setHorizontalAlignment(JTextField.TRAILING);
jtfAuto.setToolTipText("Should be a value between 1 to 20");
jtfAuto.setText("2");
}
return jtfAuto;
}
/**
* This method initializes jpMunal
*
* @return javax.swing.JPanel
*/
private JPanel getJpMunal() {
if (jpMunal == null) {
jlManual = new JLabel();
jlManual.setText("Press next to run step by step");
jpMunal = new JPanel();
jpMunal.setLayout(new BorderLayout());
jpMunal.setLocation(new Point(40, 50));
jpMunal.setSize(new Dimension(170, 45));
jpMunal.add(getJpManualMode(), BorderLayout.WEST);
jpMunal.add(getJbNext(), BorderLayout.EAST);
jpMunal.add(jlManual, BorderLayout.NORTH);
}
return jpMunal;
}
/**
* This method initializes jpAuto
*
* @return javax.swing.JPanel
*/
private JPanel getJpAuto() {
if (jpAuto == null) {
jlAuto = new JLabel();
jlAuto.setText("Set the frequency of the cpu");
jpAuto = new JPanel();
jpAuto.setLayout(new BorderLayout());
jpAuto.setLocation(new Point(40, 5));
jpAuto.setSize(new Dimension(170, 45));
jpAuto.add(getJpAutoMode(), BorderLayout.WEST);
jpAuto.add(getJtfAuto(), BorderLayout.EAST);
jpAuto.add(jlAuto, BorderLayout.NORTH);
}
return jpAuto;
}
/**
* Return the mode.
*/
public RunningMode getMode() {
return mode;
}
/**
* Reset the mode.
*/
public void setMode(RunningMode mode) {
this.mode = mode;
}
public int getSleepTime() {
String s = getJtfAuto().getText();
int i;
try {
i = Integer.parseInt(s);
}
catch (NumberFormatException ex) {
i = 2;
}
if(i < 1 || i > 20)
i = 2;
//display("CPU frequency set to be " + new Integer(i).toString());
return (int) (1000 / i);
}
public void enableButton() {
synchronized (mode) {
mode.setButtonPressed(false);
if(mode.getMode() == RunningMode.MANUAL)
getJbNext().setEnabled(true);
}
}
} // @jve:decl-index=0:visual-constraint="-27,-42"
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -