📄 frame7.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 + -