📄 demoframe.java
字号:
getContentPane().add(jTabbedPane1); jTabbedPane1.setBounds(0, 0, 600, 690); jTabbedPane1.getAccessibleContext().setAccessibleName("演示区"); pack(); }// </editor-fold>//GEN-END:initComponents private void jTabbedPane1StateChanged(ChangeEvent evt) { if(alg1 != null && alg2 != null) if(!alg1.isAlive() && !alg2.isAlive()) { lineChart = new LineChart(eff1,eff2,AlgName1,AlgName2); jChart = lineChart.getJPanel(); jChart.setBounds(10, 20, 500, 600); jPanel2.add(jChart); } } private void randomProduce(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_randomProduce if(jRadioButton2.isSelected()) { seq=RandomSeq.getRandomSeq(); char[] show = new char[40]; int j=0; for (int i = 0; i < seq.length; i++) { show[j++] = (char)(seq[i]+48); show[j++] = ' '; } jTextField1.setText(new String().valueOf(show)); jTextField1.setEditable(false); jButton3.setEnabled(false); jComboBox2.setEnabled(true); jComboBox3.setEnabled(true); jButton1.setEnabled(true); } } private void ManualProduce(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_ManualProduce if(jRadioButton1.isSelected()) { jTextField1.setText(new String("")); jTextField1.setEditable(true); jButton3.setEnabled(true); } }//GEN-LAST:event_ManualProduce private void complishButton(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_complishButton block1 = new Label[blockNum]; for (int i = 0; i < blockNum; i++) { block1[i] = new Label(); block1[i].setAlignment(java.awt.Label.CENTER); block1[i].setBounds(15, i*this.height+15+i, 100, this.height); block1[i].setBackground(Color.CYAN); jPanel5.add(block1[i]); } eff1 = new double[seq.length]; switch(choice1) { case 0: alg1 = new Optimal(seq.clone(),eff1,block1,label1,label2,label4); AlgName1 = "最佳(Optimal)置换算法"; break; case 1: alg1 = new FIFO(seq.clone(),eff1,block1,label1,label2,label4); AlgName1 = "先进先出(FIFO)页面置换算法"; break; case 2: alg1 = new LRU(seq.clone(),eff1,block1,label1,label2,label4); AlgName1 = "最近最久未使用(LRU)置换算法"; break; case 3: alg1 = new Clock(seq.clone(),eff1,block1,label1,label2,label4); AlgName1 = "简单的CLOCK置换算法"; break; case 4: alg1 = new BetterClock(seq.clone(),eff1,block1,label1,label2,label4); AlgName1 = "改进的CLOCK置换算法"; break; case 5: alg1 = new LFU(seq.clone(),eff1,block1,label1,label2,label4); AlgName1 = "最少使用(LFU)置换算法"; break; } ////////////////////////////// ////////////////////////////// block2 = null; block2 = new Label[blockNum]; for (int i = 0; i < blockNum; i++) { block2[i] = new Label(); block2[i].setAlignment(java.awt.Label.CENTER); block2[i].setBounds(15, i*this.height+15+i, 100, this.height); block2[i].setBackground(Color.CYAN); jPanel6.add(block2[i]); } eff2 = new double[seq.length]; switch(choice2) { case 5: alg2 = new Optimal(seq.clone(),eff2,block2,label5,label6,label8); AlgName2 = "最佳(Optimal)置换算法"; break; case 4: alg2 = new FIFO(seq.clone(),eff2,block2,label5,label6,label8); AlgName2 = "先进先出(FIFO)页面置换算法"; break; case 3: alg2 = new LRU(seq.clone(),eff2,block2,label5,label6,label8); AlgName2 = "最近最久未使用(LRU)置换算法"; break; case 2: alg2 = new Clock(seq.clone(),eff2,block2,label5,label6,label8); AlgName2 = "简单的CLOCK置换算法"; break; case 1: alg2 = new BetterClock(seq.clone(),eff2,block2,label5,label6,label8); AlgName2 = "改进的CLOCK置换算法"; break; case 0: alg2 = new LFU(seq.clone(),eff2,block2,label5,label6,label8); AlgName2 = "最少使用(LFU)置换算法"; break; } label3.setVisible(true); label3.setText("该算法为:"+AlgName1); label7.setVisible(true); label7.setText("该算法为:"+AlgName2); //// for (int i = 0; i < block1.length; i++) {// System.out.println(block1[i].g);;// }// System.out.println("~~~~~~");// for (int i = 0; i < block1.length; i++) {// System.out.println(block2[i]);;// }// System.out.println("@@@@@@@@@@"); alg1.start(); alg2.start(); }//GEN-LAST:event_complishButton private void jButton2ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jButton2ActionPerformed }//GEN-LAST:event_jButton2ActionPerformed private void jComboBox1ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jComboBox1ActionPerformed this.blockNum=Integer.parseInt((String)jComboBox1.getSelectedItem()); switch(this.blockNum) { case 3: this.height = 35; break; case 4: this.height = 27; break; case 5: this.height = 21; break; } }//GEN-LAST:event_jComboBox1ActionPerformed private void Alg1(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_Alg1 choice1 = jComboBox2.getSelectedIndex(); }//GEN-LAST:event_Alg1 private void Alg2(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_Alg2 choice2 = jComboBox3.getSelectedIndex(); }//GEN-LAST:event_Alg2 private void jButton3ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jButton3ActionPerformed if(jRadioButton1.isSelected()) { String text = jTextField1.getText(); text=text.replace(' ', ','); boolean have=false; for (int i = 0; i < text.length(); i++) { if(have && text.charAt(i)==',') { JOptionPane.showMessageDialog(this, "您输入了非法字符","ERROR",JOptionPane.WARNING_MESSAGE); return; } if(text.charAt(i)==',') have=true; else have=false; if(!(text.charAt(i)==',' || (text.charAt(i) <= '9' || text.charAt(i) >'0')) ) { System.out.println("error at"+text.charAt(i)); JOptionPane.showMessageDialog(this, "您输入了非法字符","ERROR",JOptionPane.WARNING_MESSAGE); return; } } Object[] num=text.split(","); seq = new int[num.length]; for (int i = 0; i < num.length; i++) { System.out.println(num[i]); seq[i] = Integer.parseInt(((String)(num[i])).trim()); } jComboBox2.setEnabled(true); jComboBox3.setEnabled(true); jButton1.setEnabled(true); } }//GEN-LAST:event_jButton3ActionPerformed public int getBolckNum() { return blockNum; } public int[] getSeq() { return seq; } // Variables declaration - do not modify//GEN-BEGIN:variables private javax.swing.ButtonGroup buttonGroup1; private javax.swing.JButton jButton1; private javax.swing.JButton jButton3; private javax.swing.JComboBox jComboBox1; private javax.swing.JComboBox jComboBox2; private javax.swing.JComboBox jComboBox3; 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.JPanel jPanel1; private javax.swing.JPanel jPanel2; private javax.swing.JPanel jPanel3; private javax.swing.JPanel jPanel4; private javax.swing.JPanel jPanel5; private javax.swing.JPanel jPanel6; private javax.swing.JRadioButton jRadioButton1; private javax.swing.JRadioButton jRadioButton2; private javax.swing.JTabbedPane jTabbedPane1; private javax.swing.JTextField jTextField1; private java.awt.Label label1; private java.awt.Label label2; private java.awt.Label label3; private java.awt.Label label4; private java.awt.Label label5; private java.awt.Label label6; private java.awt.Label label7; private java.awt.Label label8; // End of variables declaration//GEN-END:variables private int[] seq = null; private int blockNum = 3; private Label[] block1 = null; private Label[] block2 = null; private int height = 35; private PageReplace alg1 = null; private PageReplace alg2 = null; private int choice1 = 0; private int choice2 = 0; private String AlgName1 = null; private String AlgName2 = null; private JPanel jChart = null; private LineChart lineChart = null; private double[] eff1 = null; private double[] eff2 = null; private Label red = null; private Label cyan = null; private Label green = null; private JLabel red_text = null; private JLabel green_text = null; private JLabel cyan_text = null;}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -