📄 fifo_sim.java
字号:
private void jCheckBox_AutoresizeStateChanged(javax.swing.event.ChangeEvent evt) {//GEN-FIRST:event_jCheckBox_AutoresizeStateChanged
// TODO add your handling code here:
if(ftable.GetObj())
{
if(jCheckBox_Autoresize.isSelected())
{
jTable_PageTable.setAutoResizeMode(javax.swing.JTable.AUTO_RESIZE_SUBSEQUENT_COLUMNS);
}
else
{
jTable_PageTable.setAutoResizeMode(javax.swing.JTable.AUTO_RESIZE_OFF);
}
}
}//GEN-LAST:event_jCheckBox_AutoresizeStateChanged
private void jButton_ResetActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jButton_ResetActionPerformed
// TODO add your handling code here:
erf=true;
col=0;
row=0;
ftable.col=0;
ftable.row=0;
phi=0;
pfi=0;
jComboBox_Algo.setSelectedIndex(0);
jSpinner_PageFrame.setValue(new java.lang.Integer(0));
jSpinner_RefField.setValue(new java.lang.Integer(0));
jTextField_refField.setText(""+refList.size());
jTextField_PHits.setText(""+phi);
jTextField_PFaults.setText(""+pfi);
if(refList.size()>0)
{
refList.removeAllElements();
jTextField_refField.setText(""+refList.size());
jList_RefField.setListData(refList);
}
ftable.resetModel();
jTable_PageTable.setModel(ftable.dataModel);
}//GEN-LAST:event_jButton_ResetActionPerformed
private void jButton_SetActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jButton_SetActionPerformed
// TODO add your handling code here:
msg="";
col=1;
ftable.col=1;
tmpint1 = (java.lang.Integer)jSpinner_PageFrame.getValue();
if(tmpint1.intValue()<50&&tmpint1.intValue()>0)
{
if(erf)
{
erf=false;
}
row=tmpint1.intValue();
row++;
ftable.row=row-1;
ftable.resetObj();
ftable.resetModel();
jTable_PageTable.setAutoResizeMode(javax.swing.JTable.AUTO_RESIZE_SUBSEQUENT_COLUMNS);
jTable_PageTable.setModel(ftable.dataModel);
//jSpinner_PageFrame.setEnabled(false);
fset=2;
}
else {
fset=3;
msg+="Page Frames must be between 0 to 50.";
javax.swing.JOptionPane.showMessageDialog(this,msg, "Warning",javax.swing.JOptionPane.WARNING_MESSAGE );
}
}//GEN-LAST:event_jButton_SetActionPerformed
private void jButton_DeleteAllActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jButton_DeleteAllActionPerformed
// TODO add your handling code here:
if(refList.size()>0)
{
refList.removeAllElements();
jTextField_refField.setText(""+refList.size());
jList_RefField.setListData(refList);
}
jTextField_refField.setText(""+refList.size());
}//GEN-LAST:event_jButton_DeleteAllActionPerformed
private void jButton_SimulateActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jButton_SimulateActionPerformed
// TODO add your handling code here:
msg="";
erf2=true;
sAlgo=jComboBox_Algo.getSelectedItem().toString();
if(refList.size()>0&&(row-1)<50&&(row-1)>0&&(!sAlgo.equals("Select")))
{
jSpinner_PageFrame.setValue(new java.lang.Integer(row-1));
if(jCheckBox_Autoresize.isSelected())
{
jTable_PageTable.setAutoResizeMode(javax.swing.JTable.AUTO_RESIZE_SUBSEQUENT_COLUMNS);
}
else
{
jTable_PageTable.setAutoResizeMode(javax.swing.JTable.AUTO_RESIZE_OFF);
}
GetData();
erf2=false;
}
if(sAlgo.equals("Select"))
{
msg+="Please select algorithm.\n";
}
if(erf)
{
msg+="Please set page frames.\n";
}
else
{
jSpinner_PageFrame.setValue(new java.lang.Integer(row-1));
}
if(refList.size()<1)
{
msg+="Reference field is empty.\nPlease fill reference field.";
}
if(erf2)
{
javax.swing.JOptionPane.showMessageDialog(this,msg, "Warning",javax.swing.JOptionPane.WARNING_MESSAGE );
}
}//GEN-LAST:event_jButton_SimulateActionPerformed
private void jButton_AboutActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jButton_AboutActionPerformed
// TODO add your handling code here:
javax.swing.JOptionPane.showMessageDialog(this,"Developer : Fubin\n" +" Subject : Show Table Model\n" +" Contact : yonghe169@163.com www.cujava.com","About Developer",javax.swing.JOptionPane.INFORMATION_MESSAGE);
}//GEN-LAST:event_jButton_AboutActionPerformed
private void jButton_AddEditActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jButton_AddEditActionPerformed
// TODO add your handling code here:
tmpint = (java.lang.Integer)jSpinner_RefField.getValue();
if(tmpint.intValue()<0||tmpint.intValue()>99)
{
msg="Reference field must be between 0 to 100.\nPlease re-enter reference field.";
javax.swing.JOptionPane.showMessageDialog(this,msg, "Warning",javax.swing.JOptionPane.WARNING_MESSAGE );
}
else
{
refList.add(jSpinner_RefField.getValue());
jTextField_refField.setText(""+refList.size());
jList_RefField.setListData(refList);
}
}//GEN-LAST:event_jButton_AddEditActionPerformed
private void jButton_ExitActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jButton_ExitActionPerformed
// TODO add your handling code here:
javax.swing.JOptionPane.showMessageDialog(this,"Developer : Fubin\n" +" Subject : Show Table Model\n" +" Contact : yonghe169@163.com www.cujava.com","About Developer",javax.swing.JOptionPane.INFORMATION_MESSAGE);
System.exit(0);
}//GEN-LAST:event_jButton_ExitActionPerformed
private void jButton_DeleteActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jButton_DeleteActionPerformed
// TODO add your handling code here:
if(!jList_RefField.isSelectionEmpty())
{
refId=jList_RefField.getSelectedIndex();
refList.remove(refId);
jTextField_refField.setText(""+refList.size());
jList_RefField.setListData(refList);
}
jTextField_refField.setText(""+refList.size());
}//GEN-LAST:event_jButton_DeleteActionPerformed
public void GetData()
{
flg=false;
pfi=1;
phi=0;
ftable.row=row;
ftable.col=refList.size();
col=refList.size();
Pages = new Object[col][row];
ftable.data = new Object[row][col];
for(i=0;i<col;i++)
{
for(j=0;j<row-1;j++)
{
Pages[i][j]="-";
}
}
for(i=0;i<col;i++)
{
Pages[i][row-1]="PF";
}
Pages[0][0]=refList.get(0);
if(sAlgo.equals("FIFO"))
{
for(i=1;i<col;i++)
{
flg=false;
for(k=0;k<i&&k<row-1&&!flg;k++)
{
if(Pages[i-1][k].toString().equals(refList.get(i).toString()))
{
flg=true;
Pages[i][row-1]="PH";
}
}
if(!flg)
{
for(j=1;j<=i&&j<row-1;j++)
{
Pages[i][j]=Pages[i-1][j-1];
}
Pages[i][0]=refList.get(i);
pfi++;
}
else
{
for(k=0;k<i&&k<row-1;k++)
{
Pages[i][k]=Pages[i-1][k];
}
phi++;
}
}
}
else if(sAlgo.equals("LRU"))
{
for(i=1;i<col;i++)
{
flg=false;
for(k=0;k<i&&k<row-1&&!flg;k++)
{
if(Pages[i-1][k].toString().equals(refList.get(i).toString()))
{
flg=true;
tmp=k;
Pages[i][row-1]="PH";
}
}
if(!flg)
{
for(j=1;j<=i&&j<row-1;j++)
{
Pages[i][j]=Pages[i-1][j-1];
}
Pages[i][0]=refList.get(i);
pfi++;
}
else
{
Pages[i][0]=Pages[i-1][tmp];
for(k=1;k<=tmp&&k<row-1;k++)
{
Pages[i][k]=Pages[i-1][k-1];
}
for(k=tmp+1;k<i&&k<row-1;k++)
{
Pages[i][k]=Pages[i-1][k];
}
phi++;
}
}
}
for(i=0;i<col;i++)
{
for(j=0;j<row;j++)
{
ftable.data[j][i] = Pages[i][j].toString();
}
}
jTextField_PHits.setText(""+phi);
jTextField_PFaults.setText(""+pfi);
ftable.resetModel();
jTable_PageTable.setModel(ftable.dataModel);
}
private void jButton_ReverseActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jButton_ReverseActionPerformed
// TODO add your handling code here:
if(refList.size()>0)
{
tList =(java.util.Vector) refList.clone();
refList.removeAllElements();
for(i=tList.size()-1;i>=0;i--)
{
refList.add(tList.get(i));
}
tList=null;
jList_RefField.setListData(refList);
}
}//GEN-LAST:event_jButton_ReverseActionPerformed
/**
* @param args the command line arguments
*/
public static void main(String args[]) {
try {
javax.swing.UIManager.put("AuditoryCues.playList",UIManager.get("AuditoryCues.allAuditoryCues"));
javax.swing.JFrame.setDefaultLookAndFeelDecorated(true);
javax.swing.JDialog.setDefaultLookAndFeelDecorated(true);
javax.swing.UIManager.setLookAndFeel("com.sun.java.swing.plaf.windows.WindowsLookAndFeel");
} catch (Exception ex) {
System.out.println("Failed loading L&F: ");
System.out.println(ex);
}
java.awt.EventQueue.invokeLater(new Runnable() {
public void run() {
new FIFO_Sim().setVisible(true);
}
});
}
// Variables declaration - do not modify//GEN-BEGIN:variables
private javax.swing.JButton jButton_About;
private javax.swing.JButton jButton_AddEdit;
private javax.swing.JButton jButton_Delete;
private javax.swing.JButton jButton_DeleteAll;
private javax.swing.JButton jButton_Exit;
private javax.swing.JButton jButton_Reset;
private javax.swing.JButton jButton_Reverse;
private javax.swing.JButton jButton_Set;
private javax.swing.JButton jButton_Simulate;
private javax.swing.JCheckBox jCheckBox_Autoresize;
private javax.swing.JComboBox jComboBox_Algo;
private javax.swing.JLabel jLabel1;
private javax.swing.JLabel jLabel2;
private javax.swing.JLabel jLabel3;
private javax.swing.JLabel jLabel4;
private javax.swing.JLabel jLabel5;
private javax.swing.JLabel jLabel6;
private javax.swing.JLabel jLabel7;
private javax.swing.JLabel jLabel8;
private javax.swing.JLabel jLabel9;
private javax.swing.JList jList_RefField;
private javax.swing.JPanel jPanel1;
private javax.swing.JPanel jPanel2;
private javax.swing.JPanel jPanel3;
private javax.swing.JPanel jPanel_PageTable;
private javax.swing.JScrollPane jScrollPane_PageTable;
private javax.swing.JScrollPane jScrollPane_RefField;
private javax.swing.JSpinner jSpinner_PageFrame;
private javax.swing.JSpinner jSpinner_RefField;
private javax.swing.JTable jTable_PageTable;
private javax.swing.JTextField jTextField_PFaults;
private javax.swing.JTextField jTextField_PHits;
private javax.swing.JTextField jTextField_refField;
// End of variables declaration//GEN-END:variables
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -