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

📄 frame7.java

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

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

import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JTable;
import java.awt.*;
import javax.swing.JLabel;
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import javax.swing.table.*;


/**
 * <p>Title: </p>
 *
 * <p>Description: </p>
 *
 * <p>Copyright: Copyright (c) 2007</p>
 *
 * <p>Company: </p>
 *
 * @author not attributable
 * @version 1.0
 */
public class Frame7 extends JFrame {
    String[][] c1 = { {"1", "20k", "30k", "0"}, {"2", "50k", "60k", "0"}, {"3",
                    "130k", "15k", "0"}, {"4", "220k", "90k", "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 = "存储示意图";
    huatu ha = new huatu();
    String q1 = null,q2 = null;
    int o1 = 0,o2 = 0,x3 = 8,h1 = 4,h2 = 4;
    DefaultTableModel jt1 = new DefaultTableModel(c1,c3);
     DefaultTableModel jt2 = new DefaultTableModel(c2,c3);
    JPanel contentPane;
    JTable jTable1 = new JTable(jt1);
    JLabel jLabel1 = new JLabel();
    JLabel jLabel2 = new JLabel();
    JTable jTable2 = new JTable(jt2);
    JLabel jLabel3 = new JLabel();
    JLabel jLabel4 = new JLabel();
    JLabel jLabel5 = new JLabel();
    JLabel jLabel6 = new JLabel();
    javax.swing.JTextField jTextField1 = new JTextField();
     javax.swing.JTextField jTextField2 = new JTextField();
    javax.swing.JButton jButton1 = new JButton();
    javax.swing.JButton jButton2 = new JButton();
    public Frame7() {
        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(532, 103, 200, 210));
        jLabel1.setText("未分配区说明表");
        jLabel1.setBounds(new Rectangle(550, 40, 157, 20));
        jLabel1.setFont(new java.awt.Font("Dialog", Font.PLAIN, 15));
        jLabel2.setFont(new java.awt.Font("Dialog", Font.PLAIN, 15));
        jLabel3.setFont(new java.awt.Font("Dialog", Font.PLAIN, 15));
        jLabel4.setFont(new java.awt.Font("Dialog", Font.PLAIN, 15));
        jLabel5.setFont(new java.awt.Font("Dialog", Font.PLAIN, 15));
        jLabel6.setFont(new java.awt.Font("Dialog", Font.PLAIN, 15));
        jButton1.setFont(new java.awt.Font("Dialog", Font.PLAIN, 15));
        jButton2.setFont(new java.awt.Font("Dialog", Font.PLAIN, 15));
        jLabel2.setText("序号    首址      大小     状态");
        jLabel2.setBounds(new Rectangle(532, 71, 200, 20));
        jTable2.setBounds(new Rectangle(753, 103, 200, 210));
        jLabel3.setText("已分配区说明表");
        jLabel3.setBounds(new Rectangle(771, 40, 156, 20));
        jLabel4.setText("序号    首址     大小      状态");
        jLabel4.setBounds(new Rectangle(753, 71, 200, 20));
        ha.setBounds(new Rectangle(0, 0, 500, 500));
        jLabel5.setText("输入作业大小");
        jLabel6.setText("输入回收序号");
        jLabel5.setBounds(new Rectangle(532, 315, 144, 37));
        jLabel6.setBounds(new Rectangle(753, 315, 144, 37));
        jTextField1.setBounds(new Rectangle(532, 360, 159, 30));
        jTextField2.setBounds(new Rectangle(753, 360, 159, 30));
        jButton1.setBounds(new Rectangle(532, 394, 151, 37));
        jButton1.setText("确定");
        jButton2.setBounds(new Rectangle(753, 394, 151, 37));
        jButton2.setText("确定");
        jButton1.addActionListener(new Frame7_jButton1_actionAdapter(this));
        jButton2.addActionListener(new Frame7_jButton2_actionAdapter(this));
        contentPane.add(jLabel3);
        contentPane.add(jLabel4);
        contentPane.add(jTable2);
        contentPane.add(jLabel1);
        contentPane.add(jLabel2);
        contentPane.add(jTable1);
        contentPane.add(ha);
        contentPane.add(jLabel5);
        contentPane.add(jLabel6);
        contentPane.add(jTextField1);
         contentPane.add(jTextField2);
        contentPane.add(jButton1);
        contentPane.add(jButton2);
    }

    public void jButton1_actionPerformed(ActionEvent e) {
        q1 = jTextField1.getText();
            if(q1.equals("")) new cat4();
            else {jTextField1.setText("");
                o1 = Integer.parseInt(q1);
                 ha.fenpei1(o1);
    }
    }
    public void jButton2_actionPerformed(ActionEvent e) {
      q2 = jTextField2.getText();
      if(q2.equals("")) new cat4();
      else {
          jTextField2.setText("");
          o2 = Integer.parseInt(q2);
          ha.huishou1(o2);
      }

   }

    class huatu extends Canvas{
        int b =20,l3 = 0;
        huatu(){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 void fenpei1(int h){

        int t = 0, t1 = 0, t2 = 0, t3 = 0, x1 = 0, t4 = 0,x2 = 0;
        String s = null, s1 = null, s3 = null;

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

            if (t > h) {
                c4[1] = (String) jTable1.getValueAt(i, 1);
                t2 = t - h;
                t4 = zh((String) jTable1.getValueAt(i, 1));
                t3 = zh((String) jTable1.getValueAt(i, 1)) + h;
                s = zh1(t3);
                jTable1.setValueAt(s, i, 1); /*设置首地址*/
                s1 = zh1(t2);
                jTable1.setValueAt(s1, i, 2);
                jTable1.repaint();


                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);
                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 huishou1(int  d){
         String g5 = null,g6 = null,g7 = null;
         int z = 0;
         g7=g5 = (String)jTable2.getValueAt(d-1,1);/*g5*是首地址*/
         c4[1] = g5;
         g6=c4[2] = (String)jTable2.getValueAt(d-1,2);

         System.out.println(zh(g5));
         c4[3] = "0";
         for(z=0;z<h1;z++){
if(zh(c4[1])<zh((String)jTable1.getValueAt(z, 1))){

                     System.out.println(zh(g5)==(zh((String)jTable1.getValueAt(z-1,1))+zh((String)jTable1.getValueAt(z-1,2))));
  if(zh(g5)!=(zh((String)jTable1.getValueAt(z-1,1))+zh((String)jTable1.getValueAt(z-1,2)))&&zh(g5)!=(zh((String)jTable1.getValueAt(z,1))-zh(g6)))
                    {    System.out.println("quanbudeng");
                        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++;}
  else    if(zh(g5)==(zh((String)jTable1.getValueAt(z-1,1))+zh((String)jTable1.getValueAt(z-1,2)))&&zh(g5)!=(zh((String)jTable1.getValueAt(z,1))-zh(g6))){
                      System.out.println("xiadeng");
                      c4[0] = (String) jTable1.getValueAt(z - 1, 0);
                     c4[1] = (String)jTable1.getValueAt(z-1,1);
                      c4[2] = zh1(zh(c4[2]) +zh((String) jTable1.getValueAt(z - 1, 2)));
                      jt1.removeRow(z - 1);
                      jt1.insertRow(z - 1, c4);
                       jTable1.repaint();
                  }
   else  if(zh(g5)==(zh((String)jTable1.getValueAt(z,1))-zh(g6))&&zh(g5)==(zh((String)jTable1.getValueAt(z-1,1))+zh((String)jTable1.getValueAt(z-1,2)))){
                   System.out.println("quandeng");
                   c4[0] = (String) jTable1.getValueAt(z - 1, 0);

                    c4[1] = (String)jTable1.getValueAt(z-1,1);

                    c4[2] = zh1(zh(g6)+zh((String)jTable1.getValueAt(z-1,2))+zh((String)jTable1.getValueAt(z,2)));

                   for(int z1 = z;z1<h1;z1++)
                    {


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

                        jt1.removeRow(z-1);

               jt1.insertRow(z-1,c4);
               h1--;
                jTable1.repaint();
                  }
   else{        System.out.println("shangdeng");
                  c4[0] = (String) jTable1.getValueAt(z, 0);
                  c4[2] = zh1(zh(g6)+zh((String)jTable1.getValueAt(z,2)));
                  System.out.println(c4[1]);
                  jt1.removeRow(z);
                  jt1.insertRow(z,c4);
                   jTable1.repaint();
                  }

                      break;
                  }

                    System.out.println(z);
                      System.out.println(h1);



         }
         if(z>= h1){
    if(zh(g5)==(zh((String)jTable1.getValueAt(h1-1,1))+zh((String)jTable1.getValueAt(h1-1,2)))){
        System.out.println(23);
                          c4[0] = (String) jTable1.getValueAt(h1 - 1, 0);
                     c4[1] = (String)jTable1.getValueAt(h1-1,1);
                      c4[2] = zh1(zh(c4[2]) +zh((String) jTable1.getValueAt(h1 - 1, 2)));
                      jt1.removeRow(h1 - 1);
                      jt1.insertRow(h1 - 1, c4);
                       jTable1.repaint();

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

                  }


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


     }
     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;
     }
    }
}

class Frame7_jButton1_actionAdapter implements ActionListener {
    private Frame7 adaptee;
    Frame7_jButton1_actionAdapter(Frame7 adaptee) {
        this.adaptee = adaptee;
    }

    public void actionPerformed(ActionEvent e) {
        adaptee.jButton1_actionPerformed(e);
    }

}


class Frame7_jButton2_actionAdapter implements ActionListener {
    private Frame7 adaptee;
    Frame7_jButton2_actionAdapter(Frame7 adaptee) {
        this.adaptee = adaptee;
    }

    public void actionPerformed(ActionEvent e) {
        adaptee.jButton2_actionPerformed(e);
    }

}

⌨️ 快捷键说明

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