⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 frame9.java

📁 存储器模拟系统 用意存储器模拟 学生的课程设计
💻 JAVA
字号:
package com.nc;

import java.awt.BorderLayout;
import java.awt.Dimension;

import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.table.DefaultTableModel;
import javax.swing.JTable;
import javax.swing.JLabel;
import javax.swing.JTextField;
import javax.swing.JButton;
import java.awt.Rectangle;
import java.awt.event.ActionEvent;
import java.awt.Canvas;
import java.awt.event.WindowEvent;
import java.awt.Color;
import java.awt.Graphics;
import java.awt.Font;

/**
 * <p>Title: </p>
 *
 * <p>Description: </p>
 *
 * <p>Copyright: Copyright (c) 2007</p>
 *
 * <p>Company: </p>
 *
 * @author not attributable
 * @version 1.0
 */
public class Frame9 extends JFrame {
    JPanel contentPane;
    String[][] c1 = { {"1", "220k", "90k", "0"}, {"2", "50k", "60k", "0"}, {"3",
                  "20k", "30k", "0"}, {"4", "130k", "15k", "0"}
  };
  String[][] c2 = { {"1", "110k", "20k", "1"}, {"2", "145k", "35k", "1"},
                  {"3", "180k", "40k", "1"}, {"4", "310k", "70k", "1"}
  };
  String[] c3 = {"序号", "首址", "大小", "状态"} ;
  String[] c4 = new String[4];
  int[] a = {30, 60, 20, 15, 35, 40, 90, 70};
 String[] u = {"20k", "50k", "110k", "130k", "145k", "180k", "220k", "310k"};
 String j = "存储示意图";
String q1 = null,e1 = null;
int o1 = 0 ,h1 =  4,h2 = 4,h3 = 0;
  DefaultTableModel jt1 = new DefaultTableModel(c1,c3);
    DefaultTableModel jt2 = new DefaultTableModel(c2,c3);
    huatu1 ht = new  huatu1();
 JTable jTable1 = new JTable(jt1);
 JTable jTable2 = new JTable(jt2);
 JLabel jLabel1 = new JLabel();
 JLabel jLabel2 = new JLabel();
 JLabel jLabel3 = new JLabel();
 JLabel jLabel4 = new JLabel();
 JLabel jLabel5 = new JLabel();
 JLabel jLabel6 = new JLabel();
 JTextField jTextField1 = new JTextField();
 JTextField jTextField2 = new JTextField();
 JButton jButton1 = new JButton();
 JButton jButton2 = new JButton();

    public Frame9() {
        try {
            setDefaultCloseOperation(EXIT_ON_CLOSE);
            jbInit();
        } catch (Exception exception) {
            exception.printStackTrace();
        }
    }

    /**
     * Component initialization.
     *
     * @throws java.lang.Exception
     */
    private void jbInit() throws Exception {
        contentPane = (JPanel) getContentPane();
        contentPane.setLayout(null);
        setSize(new Dimension(1000, 700));
        setTitle("最差适用算法");
    jTable1.setBounds(new Rectangle(595, 136, 162, 191));
    jTable2.setBounds(new Rectangle(782, 137, 164, 191));
    jLabel1.setText("块号   首址  大小   状态");
    jLabel1.setBounds(new Rectangle(595, 98, 166, 38));
    jLabel1.setFont(new java.awt.Font("Dialog", Font.PLAIN, 15));
    jLabel2.setText("     已分配表");
    jLabel2.setBounds(new Rectangle(622, 44, 166, 43));
    jLabel2.setFont(new java.awt.Font("Dialog", Font.PLAIN, 15));
    jLabel3.setText("块号   首址  大小   状态");
    jLabel3.setBounds(new Rectangle(782, 99, 165, 40));
    jLabel3.setFont(new java.awt.Font("Dialog", Font.PLAIN, 15));
    jLabel4.setText("    未分配表");
    jLabel4.setBounds(new Rectangle(782, 51, 165, 36));
    jLabel4.setFont(new java.awt.Font("Dialog", Font.PLAIN, 15));
    jLabel5.setText("输入作业大小");
    jLabel5.setBounds(new Rectangle(625, 339, 162, 36));
    jLabel5.setFont(new java.awt.Font("Dialog", Font.PLAIN, 15));
    jLabel6.setText("输入回收序号");
    jLabel6.setBounds(new Rectangle(812, 340, 167, 37));
    jLabel6.setFont(new java.awt.Font("Dialog", Font.PLAIN, 15));

    jTextField1.setBounds(new Rectangle(625, 388, 157, 31));

    jTextField2.setBounds(new Rectangle(816, 387, 158, 32));
    jButton1.setBounds(new Rectangle(625, 435, 158, 32));
    jButton1.setFont(new java.awt.Font("Dialog", Font.PLAIN, 15));
    jButton1.setText("确定");
    jButton1.addActionListener(new Frame9_jButton1_actionAdapter(this));
    jButton2.addActionListener(new Frame9_jButton2_actionAdapter(this));
    jButton2.setBounds(new Rectangle(816, 436, 161, 31));
    jButton2.setFont(new java.awt.Font("Dialog", Font.PLAIN, 15));
    jButton2.setText("确定");
    contentPane.add(jLabel1, null);
    contentPane.add(jLabel2, null);
    contentPane.add(jLabel4, null);
    contentPane.add(jLabel3, null);
    contentPane.add(jLabel5, null);
    contentPane.add(jLabel6, null);
    contentPane.add(jTextField1, null);
    contentPane.add(jTextField2, null);
    contentPane.add(jButton1, null);
    contentPane.add(jButton2, null);
    contentPane.add(jTable1, null);
    contentPane.add(jTable2,null);
     contentPane.add(ht, null);

    }
    protected void processWindowEvent(WindowEvent e) {
  super.processWindowEvent(e);
  if (e.getID() == WindowEvent.WINDOW_CLOSING) {
    System.exit(0);
  }
}
class  huatu1   extends    Canvas{
 int b =20,l3 = 0;
  huatu1(){
   setSize(500,500);

   }
   public void paint(Graphics g){

     g.drawString(j,10,10) ;
          for(int i = 0;i<8;i++){
              g.setColor(Color.red);
            g.drawRect(20,b-1,40,a[i]+1);
              g.setColor(Color.blue);
              for(int j =0;j<4;j++)
            if(zh(c2[j][2])==a[i])
                g.fillRect(21,b,39,a[i]);
                g.drawString(u[i],61,b);
           b=b+a[i];
       }

   }
   public int zh(String b2){
     int g2 = 0,g3 = 0;
     g2 = b2.length();
     g3 = Integer.parseInt(b2.substring(0,g2-1));
     return g3;

 }
 public String zh1(int v){
     String m1 = null,m2 = null;
     m1 = String.valueOf(v);
     m2 = m1.concat("k");
     return m2;
 }
public  void  fenpei(int  h){
   int t = 0, t1 = 0, t2 = 0, t3 = 0, x1 = 0, t4 = 0,x2 = 0,x3 = 0;
 String s = null, s1 = null, s3 = null,s4 = null;

 for (int i = 0; i < h1; i++) {
     t = zh((String) jTable1.getValueAt(i, 2));


     if (t > h) {
         System.out.println(i);
         s4 = (String) jTable1.getValueAt(i, 1);

         t4 = zh((String) jTable1.getValueAt(i, 1));
       System.out.println(t4);
       t3 = zh((String) jTable1.getValueAt(i, 1)) + h;
       s = zh1(t3);
       for(int z1 = i;z1<h1;z1++)
         {


             jTable1.setValueAt(String.valueOf(Integer.parseInt((String) jTable1.getValueAt(z1, 0)) - 1), z1 ,0);
         }


         jt1.removeRow(i);
         h1--;
         t2 = t - h;
         c4[2] = zh1(t2);

         c4[1] = zh1(t3);
         c4[3]= "0";
         int n = 0;
        for (n = 0; n < h1; n++) {
            System.out.println(zh(c4[2])>=zh((String) jTable1.getValueAt(n,2)));
         if (zh(c4[2])>=zh((String) jTable1.getValueAt(n,2))) {

        System.out.println("zhixingla");
               c4[0] = (String) jTable1.getValueAt(n, 0);
                for (int z1 = n; z1 < h1; z1++)
                   jTable1.setValueAt(String.valueOf(Integer.parseInt((String)jTable1.getValueAt(z1, 0)) + 1), z1, 0);
               jt1.insertRow(Integer.parseInt(c4[0]) - 1, c4);

               jTable1.repaint();
               h1++;

               break;
           }


       }
       if(n>=h1){c4[0] = String.valueOf(h1+1);
               jt1.addRow(c4);
               h1++;
               jTable1.repaint();


           }






         System.out.println((String) jTable1.getValueAt(i, 1));
        c4[1] = s4;
         for (int z = 0; z < h2; z++) {
           if (zh(c4[1])<zh((String) jTable2.getValueAt(z,1))) {


                 c4[0] = (String) jTable2.getValueAt(z, 0);

                 c4[2] = zh1(h);
                 c4[3] = "1";
                 for (int z1 = z; z1 < h2; z1++)
                     jTable2.setValueAt(String.valueOf(Integer.parseInt((String)jTable2.getValueAt(z1, 0)) + 1), z1, 0);
                 jt2.insertRow(Integer.parseInt(c4[0]) - 1, c4);

                 jTable2.repaint();
                 h2++;

                 break;
             }

         }
         Graphics p = getGraphics();
         p.setColor(Color.red);
         p.drawRect(20, t4 - 1, 40, h + 1);
         p.setColor(Color.blue);
         p.fillRect(21, t4, 39, h);
         p.drawString(s, 61, t3);


         break;

     }
     else if (t == h) {
         c4[1] = (String) jTable1.getValueAt(i, 1);
         x2 = zh(c4[1]);
         c4[2] = zh1(h);
         c4[3] = "1";
         for (int z = 0; z < h2; z++) {
             if (zh(c4[1]) < zh((String) jTable2.getValueAt(z, 1))) {
                 c4[0] = (String) jTable2.getValueAt(z, 0);
                 for (int z1 = z; z1 < h2; z1++)
                     jTable2.setValueAt(String.valueOf(Integer.parseInt((String) jTable2.getValueAt(z1, 0)) + 1), z1, 0);
                 jt2.insertRow(Integer.parseInt(c4[0]) - 1, c4);

                 jTable2.repaint();
                 h2++;
                 break;

             }
         }
         for(int z1 = i;z1<h1;z1++)
          {


              jTable1.setValueAt(String.valueOf(Integer.parseInt((String) jTable1.getValueAt(z1, 0)) - 1), z1 ,0);
          }

         jt1.removeRow(i);
         h1--;
         jTable1.repaint();
         Graphics p = getGraphics();
       p.setColor(Color.red);
       p.drawRect(20, x2 - 1, 40, h + 1);
       p.setColor(Color.blue);
       p.fillRect(21, x2, 39, h);




         break;
     }
 }

}
    public void huishou(int e2){
        String e3 = null,e4 = null,e5 = null;
        int p3 = h1+2,p4 = h1+2,p5 = 0;
      e4 = (String)jTable2.getValueAt(e2-1,1);
      e5 = (String)jTable2.getValueAt(e2 - 1,2);
     c4[1] = (String)jTable2.getValueAt(e2-1,1);
     c4[2] = (String)jTable2.getValueAt(e2-1,2);
     c4[3]= "1";
        for(int i = 0;i<h1;i++){
            if(zh(e4)==(zh((String)jTable1.getValueAt(i,1))+zh((String)jTable1.getValueAt(i,2)))){
            c4[1] = (String)jTable1.getValueAt(i,1);
            c4[2] = zh1(zh(c4[2]) +zh((String) jTable1.getValueAt(i, 2)));
            for(int z1 = i;z1<h1;z1++)
                 {
                    jTable1.setValueAt(String.valueOf(Integer.parseInt((String) jTable1.getValueAt(z1, 0)) - 1), z1 ,0);
                 }

               jt1.removeRow(i);
               h1--;
               break;
          }
       }
       for(int i=0;i<h1;i++){
           if(zh(e4)==(zh((String)jTable1.getValueAt(i,1))-zh((String)jTable1.getValueAt(i,2)))){
           c4[2] = zh1(zh(c4[2]) +zh((String) jTable1.getValueAt(i, 2)));
           for(int z1 = i;z1<h1;z1++)
      { jTable1.setValueAt(String.valueOf(Integer.parseInt((String) jTable1.getValueAt(z1, 0)) - 1), z1 ,0);
                 }


            jt1.removeRow(i);
            h1--;
            break;
          }

       }

       for (int z = 0; z < h1; z++) {
      if (zh(c4[2])>zh((String) jTable1.getValueAt(z,2))) {


            c4[0] = (String) jTable1.getValueAt(z, 0);
             for (int z1 = z; z1 < h1; z1++)
                jTable1.setValueAt(String.valueOf(Integer.parseInt((String)jTable1.getValueAt(z1, 0)) + 1), z1, 0);
            jt1.insertRow(Integer.parseInt(c4[0]) - 1, c4);

            jTable1.repaint();
            h1++;

            break;
        }
        else{c4[0] = String.valueOf(h1);
            jt1.addRow(c4);
            h1++;
            jTable1.repaint();
            break;

        }

    }
    for(int z1 = e2- 1;z1<h2;z1++)
     jTable2.setValueAt(String.valueOf(Integer.parseInt((String)jTable2.getValueAt(z1,0))-1),z1,0);
  jt2.removeRow(e2-1);
  h2--;
  jTable2.repaint();
  Graphics o = getGraphics();
  o.clearRect(21,zh(e4)-2,39,zh(e5)+2);
  o.clearRect(61,zh(e4)-8,25,16);





    }
}

void jButton1_actionPerformed(ActionEvent e) {
  q1 = jTextField1.getText();
              if(q1.equals(""))
               new cat4();
              else {
                jTextField1.setText("");
                  o1 = Integer.parseInt(q1);
                   ht.fenpei(o1);

}



}
  void jButton2_actionPerformed(ActionEvent e) {
      e1 = jTextField2.getText();
      if(e1.equals("")) new cat4();
      else {
          jTextField2.setText("");
          h3 = Integer.parseInt(e1);
          ht.huishou(h3);
      }
  }

class Frame9_jButton1_actionAdapter implements java.awt.event.ActionListener {
Frame9 adaptee;

Frame9_jButton1_actionAdapter(Frame9 adaptee) {
  this.adaptee = adaptee;
}
public void actionPerformed(ActionEvent e) {
  adaptee.jButton1_actionPerformed(e);
}
}


class Frame9_jButton2_actionAdapter implements java.awt.event.ActionListener {
Frame9 adaptee;

Frame9_jButton2_actionAdapter(Frame9 adaptee) {
  this.adaptee = adaptee;
}
public void actionPerformed(ActionEvent e) {
  adaptee.jButton2_actionPerformed(e);
}
}

}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -