www.pudn.com > pagechange.rar > pageChange.java


import java.awt.*; 
import java.awt.event.*; 
import javax.swing.*; 
public class pageChange extends JPanel implements ActionListener 
 { 
 	JPanel pan1, pan2, pan3, pan4; 
 	JButton button1, button2, button3, clearButton, randomButton; 
 	JTextField text1, text2, text3, text4; 
 	String m_random = "";// 页面序列 
 	int m, n, length; 
 	int myt[]; 
 	randomNumber RN; 
 	displayView FIFOTA, LRUTA, OptTA; 
 	public pageChange()  
 	{ 
 		pan1 = new JPanel(); 
 		pan2 = new JPanel(); 
 		pan3 = new JPanel(); 
 		text1 = new JTextField(4); 
 		text2 = new JTextField(5); 
 		text3 = new JTextField(); 
 		text4 = new JTextField(); 
 		text4.setEditable(false); 
 		pan1.setLayout(new GridLayout(4, 2)); 
 		pan1.add(new JLabel("    wulikuaishu  ")); 
 		pan1.add(text1); 
 		pan1.add(new JLabel("   zhihuanyemianshu  ")); 
 		pan1.add(text2); 
 		pan1.add(new JLabel("    yebiaochangdu   ")); 
 		pan1.add(text3); 
 		pan1.add(new JLabel("  yemianhaoyinyongchuan ")); 
 		pan1.add(text4); 
 		FIFOTA = new displayView(); 
 		LRUTA = new displayView(); 
 		OptTA = new displayView(); 
 		pan2.setLayout(new GridLayout(1, 3)); 
 		pan2.add(FIFOTA); 
 		pan2.add(LRUTA); 
 		pan2.add(OptTA); 
 		button1 = new JButton("FIFO"); 
 		button2 = new JButton("LRU"); 
 		button3 = new JButton("Optimal"); 
 		randomButton = new JButton("Random"); 
 		clearButton = new JButton("Clear"); 
 		button1.addActionListener(this); 
 		button2.addActionListener(this); 
 		button3.addActionListener(this); 
 		clearButton.addActionListener(this); 
 		randomButton.addActionListener(this); 
 		pan3.add(randomButton); 
 		pan3.add(button1); 
 		pan3.add(button2); 
 		pan3.add(button3); 
 		pan3.add(clearButton); 
 		setLayout(new BorderLayout()); 
 		add(BorderLayout.NORTH, pan1); 
 		add(BorderLayout.CENTER, pan2); 
 		add(BorderLayout.SOUTH, pan3); 
 		} 
 		public void misInPut() { 
 			try  
 			{ 
 				String str1,str2; 
 				str1 = ""; 
 				str2 = ""; 
 				m = Integer.parseInt(text1.getText()); 
 			    n = Integer.parseInt(text2.getText()); 
                length = Integer.parseInt(text3.getText()); 
                if (m == 0 || n == 0 || length == 0)  
                { 
                	JOptionPane.showMessageDialog(this, "qingshuruzifu", "tishi!", JOptionPane.ERROR_MESSAGE); 
                } 
                if (m > n && length != 0) 
                { 
                	JOptionPane.showMessageDialog(this, "shurudewulikuaishudayuyemianshuhuoyemianchangduweio","jinggao!", JOptionPane.WARNING_MESSAGE); 
                	 text1.setText("0"); 
                	 text2.setText("0"); 
                	 text3.setText("0"); 
                	 text4.setText(""); 
                }  
                else  
                { 
                	myt = new int[n]; 
                	RN = new randomNumber(); 
                	myt = RN.rand(n, length); 
                	for (int i = 0; i < n; i++)  
                	{ 
                		str2 = String.valueOf(myt[i]); 
                		str1 = str1 + " " + str2; 
                	} 
                	m_random = str1; 
 // 产生随即页面序列 
                    text4.setText("" + m_random); 
                } 
             }  
             catch (NumberFormatException ee)  
             	{ 
             		JOptionPane.showMessageDialog(this, "shurushuzizifu!", "jinggao!", 
             		JOptionPane.WARNING_MESSAGE); 
             		text1.setText("0"); 
             		text2.setText("0"); 
             		text3.setText("0"); 
             		text4.setText(""); 
             		FIFOTA.text1.setText("0"); 
             		FIFOTA.text2.setText("0"); 
             		FIFOTA.text3.setText("0"); 
             		FIFOTA.text4.setText("0"); 
             		FIFOTA.textarea.setText(null); 
             		LRUTA.text1.setText("0"); 
             		LRUTA.text2.setText("0"); 
             		LRUTA.text3.setText("0"); 
             		LRUTA.text4.setText(""); 
             		LRUTA.textarea.setText(null); 
             		OptTA.text1.setText("0"); 
             		OptTA.text2.setText("0"); 
             		OptTA.text3.setText("0"); 
             		OptTA.text4.setText(""); 
             		OptTA.textarea.setText(null); 
             	} 
 
     } 
     public void FIFO() 
     	{ 
     		int m_absent; 
     		double m_absentf; 
     		int m_change;  
     		double m_changef; 
     		int mym[]; 
     		int m1 = 0, r; 
     		int as = 0; 
     		boolean x;  
     		String str1, str2; 
     		String m_list = "FIFOzhihuansuanfa"; 
     		mym = new int[m]; 
     		for (int i = 0; i < n; i++) 
     			{ 
     				str1 = ""; 
     				str2 = ""; 
     				x = true; 
     				for (int k = 0; k < m; k++) 
     					{ 
     						if (myt[i] == mym[k]) 
     							{ 
     								for (r = k; r < m - 1; r++) 
     									mym[r] = mym[r + 1]; 
     									mym[r] = myt[i]; 
     									x = false; 
     									break; 
                                } 
 
                       } 
                       if (x) 
                       { 
                       		mym[0] = myt[i]; 
                       		for (r = 0; r < m - 1; r++) 
                       			mym[r] = mym[r + 1]; 
                       		mym[r] = myt[i]; 
                       		as++; 
                       	} 
                       	int b; 
                       	for (int j = 0; j < m; j++) 
                       		{ 
                       			b = mym[j]; 
                       			str2 = String.valueOf(b); 
                       			str1 = str1 + " " + str2; 
                       		} 
                       			m_list = m_list + '\n' + str1; 
                } 
                m_absent = as-m; 
                m_absentf = (double) (as-m) / n; 
                if ((as - m) <= 0)  
                	{ 
                		m_change = 0; 
                		m_changef = 0; 
                	} 
                else 
                	{ 
                		m_change = n-(as - m); 
                		m_changef = (double) (n-(as - m)) / n; 
                	} 
                	FIFOTA.text1.setText("" + m_absent); 
                	FIFOTA.text2.setText("" + m_absentf); 
                	FIFOTA.text3.setText("" + m_change); 
                    FIFOTA.text4.setText("" + m_changef); 
                	FIFOTA.textarea.setText("" + m_list); 
        } 
        public void LRU() 
        	{ 
        		int m_absent; 
        		double m_absentf; 
        		int m_change;  
        		double m_changef; 
        		int mym[]; 
        		int myb[]; 
        		int as = 0; 
        		myb = new int[n]; 
        		int m1 = 0, a; 
        		boolean x;  
        		String str2, str1; 
        		String m_list = "LRUzhihuansuanfa"; 
        	    mym = new int[m]; 
        	    for (int i = 0; i < n; i++) 
        	    	{ 
        	    		str1 = ""; 
        	    		str2 = ""; 
        	    		x = true; 
        	    		for (int k = 0; k < m; k++) 
        	    			{ 
        	    				if (myt[i] == mym[k]) 
        	    				{ 
        	    					myb[k] = myb[0]; 
        	    					for (int j = 0; j < m; j++) 
        	    						{ 
        	    							if (j != k) 
        	    								myb[j] = myb[j] + 1; 
        	    						} 
        	    						x = false; 
        	    						m1++; 
        	    						break; 
        	    				} 
        	    			} 
        	    			if (x) 
        	    				{ 
        	    					int c = 0, d; 
        	    					if ((i-m1)