📄 demoframe.java
字号:
/* * DemoFrame.java * * Created on 2008年11月19日, 上午10:11 */package app;import javax.swing.event.ChangeEvent;import util.*;import java.awt.Color;import java.awt.Label;import java.awt.Label;import java.awt.Label;import java.util.ArrayList;import javax.swing.JLabel;import javax.swing.JOptionPane;import javax.swing.JPanel;import util.Optimal;/** * * @author Administrator */public class DemoFrame extends javax.swing.JFrame { /** Creates new form DemoFrame */ public DemoFrame() { initComponents(); } /** This method is called from within the constructor to * initialize the form. * WARNING: Do NOT modify this code. The content of this method is * always regenerated by the Form Editor. */ private void initComponents() { buttonGroup1 = new javax.swing.ButtonGroup(); jTabbedPane1 = new javax.swing.JTabbedPane(); jPanel1 = new javax.swing.JPanel(); jPanel3 = new javax.swing.JPanel(); jLabel1 = new javax.swing.JLabel(); jComboBox1 = new javax.swing.JComboBox(); jLabel2 = new javax.swing.JLabel(); jLabel3 = new javax.swing.JLabel(); jRadioButton1 = new javax.swing.JRadioButton(); jRadioButton2 = new javax.swing.JRadioButton(); jLabel4 = new javax.swing.JLabel(); jTextField1 = new javax.swing.JTextField(); jButton1 = new javax.swing.JButton(); jLabel5 = new javax.swing.JLabel(); jComboBox2 = new javax.swing.JComboBox(); jComboBox3 = new javax.swing.JComboBox(); jButton3 = new javax.swing.JButton(); jPanel4 = new javax.swing.JPanel(); jPanel5 = new javax.swing.JPanel(); label1 = new java.awt.Label(); label2 = new java.awt.Label(); label3 = new java.awt.Label(); label4 = new java.awt.Label(); jPanel6 = new javax.swing.JPanel(); label5 = new java.awt.Label(); label8 = new java.awt.Label(); label7 = new java.awt.Label(); label6 = new java.awt.Label(); jPanel2 = new javax.swing.JPanel(); red = new Label(); green = new Label(); cyan = new Label(); red_text = new JLabel("从磁盘调入内存的页面"); green_text = new JLabel("在内存中且当前时刻在被访问的页面"); cyan_text = new JLabel("在内存中且当前时刻未被访问的页面"); setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE); setTitle("页面置换算法的演示"); setAlwaysOnTop(true); setResizable(false); getContentPane().setLayout(null); jTabbedPane1.setBackground(new java.awt.Color(255, 255, 255)); jTabbedPane1.setTabPlacement(javax.swing.JTabbedPane.RIGHT); jPanel1.setLayout(null); jPanel3.setBorder(javax.swing.BorderFactory.createTitledBorder(new javax.swing.border.LineBorder(new java.awt.Color(153, 153, 153), 1, true), "参数配置", javax.swing.border.TitledBorder.DEFAULT_JUSTIFICATION, javax.swing.border.TitledBorder.DEFAULT_POSITION, new java.awt.Font("宋体", 1, 14))); jPanel3.setLayout(null); jLabel1.setText("系统分配物理块数:"); jPanel3.add(jLabel1); jLabel1.setBounds(30, 30, 110, 15); jComboBox1.setModel(new javax.swing.DefaultComboBoxModel(new String[] { "3", "4", "5" })); jComboBox1.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { jComboBox1ActionPerformed(evt); } }); jPanel3.add(jComboBox1); jComboBox1.setBounds(140, 28, 40, 21); jLabel2.setText("块"); jPanel3.add(jLabel2); jLabel2.setBounds(190, 30, 30, 15); jLabel3.setText("页面号引用串生成方式:"); jPanel3.add(jLabel3); jLabel3.setBounds(30, 60, 140, 15); buttonGroup1.add(jRadioButton1); jRadioButton1.setSelected(true); jRadioButton1.setText("人工输入"); jRadioButton1.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { ManualProduce(evt); } }); jPanel3.add(jRadioButton1); jRadioButton1.setBounds(170, 58, 80, 23); buttonGroup1.add(jRadioButton2); jRadioButton2.setText("随机生成"); jRadioButton2.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { randomProduce(evt); } }); jPanel3.add(jRadioButton2); jRadioButton2.setBounds(250, 58, 73, 23); jLabel4.setText("页面号引用串:"); jPanel3.add(jLabel4); jLabel4.setBounds(30, 90, 90, 15); jPanel3.add(jTextField1); jTextField1.setBounds(120, 88, 290, 21); jButton1.setText("完成"); jButton1.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { complishButton(evt); } }); jButton1.setEnabled(false); jPanel3.add(jButton1); jButton1.setBounds(420, 190, 60, 23); jLabel5.setText("对比演示下列两个程序:"); jPanel3.add(jLabel5); jLabel5.setBounds(30, 120, 150, 15); jComboBox2.setModel(new javax.swing.DefaultComboBoxModel(new String[] { "最佳(Optimal)置换算法", "先进先出(FIFO)页面置换算法", "最近最久未使用(LRU)置换算法", "简单的CLOCK置换算法", "改进的CLOCK置换算法", "最少使用(LFU)置换算法" })); jComboBox2.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { Alg1(evt); } }); jComboBox2.setEnabled(false); jPanel3.add(jComboBox2); jComboBox2.setBounds(40, 150, 200, 21); jComboBox3.setModel(new javax.swing.DefaultComboBoxModel(new String[] { "最少使用(LFU)置换算法", "改进的CLOCK置换算法", "简单的CLOCK置换算法", "最近最久未使用(LRU)置换算法", "先进先出(FIFO)页面置换算法", "最佳(Optimal)置换算法" })); jComboBox3.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { Alg2(evt); } }); jComboBox3.setEnabled(false); jPanel3.add(jComboBox3); jComboBox3.setBounds(270, 150, 200, 21); jButton3.setText("完成"); jButton3.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { jButton3ActionPerformed(evt); } }); jPanel3.add(jButton3); jButton3.setBounds(420, 88, 60, 23); jPanel1.add(jPanel3); jPanel3.setBounds(15, 15, 495, 220); jPanel4.setBorder(javax.swing.BorderFactory.createTitledBorder(javax.swing.BorderFactory.createLineBorder(new java.awt.Color(153, 153, 153)), "动态演示", javax.swing.border.TitledBorder.DEFAULT_JUSTIFICATION, javax.swing.border.TitledBorder.DEFAULT_POSITION, new java.awt.Font("宋体", 1, 14))); jPanel4.setLayout(null); jPanel5.setBackground(new java.awt.Color(204, 255, 204)); jPanel5.setLayout(null); label1.setText("label1"); label1.setVisible(false); jPanel5.add(label1); label1.setBounds(135, 40, 320, 22); label2.setText("label2"); label2.setVisible(false); jPanel5.add(label2); label2.setBounds(135, 70, 320, 22); label3.setText("算法为:"); label3.setVisible(false); jPanel5.add(label3); label3.setBounds(135, 10, 320, 22); label4.setText("当前缺页率为:"); label4.setVisible(false); jPanel5.add(label4); label4.setBounds(135, 100, 320, 22); jPanel4.add(jPanel5); jPanel5.setBounds(10, 30, 470, 140); jPanel6.setBackground(new java.awt.Color(204, 255, 204)); jPanel6.setLayout(null); label5.setText("label1"); label5.setVisible(false); jPanel6.add(label5); label5.setBounds(135, 40, 320, 22); label8.setText("当前缺页率为:"); label8.setVisible(false); jPanel6.add(label8); label8.setBounds(135, 100, 320, 22); label7.setText("算法为:"); label7.setVisible(false); jPanel6.add(label7); label7.setBounds(135, 10, 320, 22); label6.setText("label2"); label6.setVisible(false); jPanel6.add(label6); label6.setBounds(135, 70, 320, 22); jPanel4.add(jPanel6); jPanel6.setBounds(10, 190, 470, 150); red.setBounds(15, 350, 10, 10); red.setBackground(Color.RED); jPanel4.add(red); red_text.setBounds(35, 345, 200, 20); jPanel4.add(red_text); cyan.setBounds(15, 375, 10, 10); cyan.setBackground(Color.CYAN); jPanel4.add(cyan); cyan_text.setBounds(35, 370, 200, 20); jPanel4.add(cyan_text); green.setBounds(15, 400, 10, 10); green.setBackground(Color.GREEN); jPanel4.add(green); green_text.setBounds(35, 395, 200, 20); jPanel4.add(green_text); jPanel1.add(jPanel4); jPanel4.setBounds(15, 250, 495, 420); jTabbedPane1.addTab("演示区", jPanel1); jPanel2.setLayout(null); jPanel2.setVisible(false); jTabbedPane1.addTab("对比显示区", jPanel2); jTabbedPane1.setSelectedComponent(jPanel1); jTabbedPane1.addChangeListener(new javax.swing.event.ChangeListener() { public void stateChanged(javax.swing.event.ChangeEvent evt) { jTabbedPane1StateChanged(evt); } });
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -