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