📄 frame8.java
字号:
package com.nc;import java.awt.*;import java.awt.event.*;import javax.swing.*;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 Frame8 extends JFrame { JPanel contentPane; String[][] c1 = { {"1", "130k", "15k", "0"}, {"2", "20k", "30k", "0"}, {"3", "50k", "60k", "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 = "存储示意图"; 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(); //Construct the frame public Frame8() { enableEvents(AWTEvent.WINDOW_EVENT_MASK); try { jbInit(); } catch(Exception e) { e.printStackTrace(); } } //Component initialization private void jbInit() throws Exception { contentPane = (JPanel) this.getContentPane(); contentPane.setLayout(null); this.setSize(new Dimension(1000, 700)); this.setTitle("最佳适用算法"); jTable1.setBounds(new Rectangle(595, 136, 162, 191)); jLabel1.setFont(new java.awt.Font("Dialog", Font.PLAIN, 15)); jLabel2.setFont(new java.awt.Font("Dialog", Font.PLAIN, 15)); jTable2.setBounds(new Rectangle(782, 136, 164, 191)); jLabel1.setText("块号 首址 大小 状态"); jLabel1.setBounds(new Rectangle(595, 90, 166, 38)); jLabel2.setText(" 已分配表"); jLabel2.setBounds(new Rectangle(622, 44, 166, 43)); 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(814, 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(814, 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 Frame8_jButton1_actionAdapter(this)); jButton2.addActionListener(new Frame8_jButton2_actionAdapter(this)); jButton2.setBounds(new Rectangle(814, 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); } //Overridden so we can exit when window is closed 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 m = 0; for ( m = 0; m < h1; m++) { if (zh(c4[2])<zh((String) jTable1.getValueAt(m,2))) { c4[0] = (String) jTable1.getValueAt(m, 0); for (int z1 = m; 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(m>=h1){c4[0] = String.valueOf(h1); 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 Frame8_jButton1_actionAdapter implements java.awt.event.ActionListener { Frame8 adaptee; Frame8_jButton1_actionAdapter(Frame8 adaptee) { this.adaptee = adaptee; } public void actionPerformed(ActionEvent e) { adaptee.jButton1_actionPerformed(e); }}class Frame8_jButton2_actionAdapter implements java.awt.event.ActionListener { Frame8 adaptee; Frame8_jButton2_actionAdapter(Frame8 adaptee) { this.adaptee = adaptee; } public void actionPerformed(ActionEvent e) { adaptee.jButton2_actionPerformed(e); }} }
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -