⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 myframe.java

📁 一个java实现的用于模拟LRU文法分析的程序
💻 JAVA
字号:
import java.awt.BorderLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JTextField;
import javax.swing.JToggleButton;
import java.awt.Color;
public class MyFrame extends JFrame {
	/**
	 * 
	 */
	private static final long serialVersionUID = 1L;
	private JTextField textField_9;
	private JTextField textField_8;
	private JTextField textField_7;
	private JTextField textField_6;
	private JTextField textField_5;
	private JTextField textField_4;
	private JTextField textField_3;
	private JTextField textField_2;
	private JTextField textField_1;
	private JTextField textField;
	private String runseq;
	private int mutex;//互斥型变量
	public MyFrame() {
		super();
		this.setTitle("LRU Demo");
		this.setBounds(300, 250, 500, 400);
		final JPanel panel = new JPanel();
		panel.setLayout(null);
		getContentPane().add(panel, BorderLayout.CENTER);

		final JLabel theAccessSeqLabel = new JLabel();
		theAccessSeqLabel.setText("the access sequence:");
		theAccessSeqLabel.setBounds(27, 22, 145, 18);
		panel.add(theAccessSeqLabel);

		textField = new JTextField();
		textField.setBounds(197, 20, 145, 22);
		panel.add(textField);

		final JLabel cache0Label = new JLabel();
		cache0Label.setText("Cache[0]:");
		cache0Label.setBounds(27, 105, 66, 18);
		panel.add(cache0Label);

		textField_1 = new JTextField();
		textField_1.setBounds(99, 103, 49, 22);
		panel.add(textField_1);

		final JLabel cache1Label = new JLabel();
		cache1Label.setText("Cache[1]:");
		cache1Label.setBounds(167, 105, 66, 18);
		panel.add(cache1Label);

		textField_2 = new JTextField();
		textField_2.setBounds(255, 103, 49, 22);
		panel.add(textField_2);

		final JLabel cache2Label = new JLabel();
		cache2Label.setText("Cache[2]:");
		cache2Label.setBounds(27, 148, 66, 18);
		panel.add(cache2Label);

		textField_3 = new JTextField();
		textField_3.setBounds(99, 146, 49, 22);
		panel.add(textField_3);

		final JLabel cache3Label = new JLabel();
		cache3Label.setText("Cache[3]:");
		cache3Label.setBounds(167, 148, 66, 18);
		panel.add(cache3Label);

		textField_4 = new JTextField();
		textField_4.setBounds(255, 146, 49, 22);
		panel.add(textField_4);

		final JLabel hitLabel = new JLabel();
		hitLabel.setText("Hit Times:");
		hitLabel.setBounds(27, 191, 94, 18);
		panel.add(hitLabel);

		textField_5 = new JTextField();
		textField_5.setBounds(145, 189, 66, 22);
		panel.add(textField_5);

		final JLabel loadTimesLabel = new JLabel();
		loadTimesLabel.setText("Load Times:");
		loadTimesLabel.setBounds(27, 232, 94, 18);
		panel.add(loadTimesLabel);

		textField_6 = new JTextField();
		textField_6.setBounds(145, 230, 66, 22);
		panel.add(textField_6);

		final JLabel relpaceTimesLabel = new JLabel();
		relpaceTimesLabel.setText("Relpace Times:");
		relpaceTimesLabel.setBounds(27, 270, 94, 18);
		panel.add(relpaceTimesLabel);

		textField_7 = new JTextField();
		textField_7.setBounds(145, 268, 66, 22);
		panel.add(textField_7);

		final JLabel hitRateLabel = new JLabel();
		hitRateLabel.setText("Hit Rate:");
		hitRateLabel.setBounds(238, 191, 66, 18);
		panel.add(hitRateLabel);

		textField_8 = new JTextField();
		textField_8.setBounds(310, 189, 87, 22);
		panel.add(textField_8);

		final JLabel currentAccessLabel = new JLabel();
		currentAccessLabel.setText("Current Access:");
		currentAccessLabel.setBounds(27, 60, 106, 18);
		panel.add(currentAccessLabel);

		textField_9 = new JTextField();
		textField_9.setBounds(145, 58, 87, 22);
		panel.add(textField_9);

		final JToggleButton runToggleButton = new JToggleButton();
		runToggleButton.addActionListener(new ActionListener() {
			public void actionPerformed(final ActionEvent arg0) {
				runseq=getTextFieldString();
				mutex=1;//证明已经按过按钮了
				setJTextFieldString("",0);
				runToggleButton.setVisible(false);
			}
		});
		runToggleButton.setText("Run");
		runToggleButton.setBounds(363, 17, 106, 28);
		panel.add(runToggleButton);
		this.setVisible(true);
	}
	public void setJTextFieldString(String str,int i) {
		switch(i) {
				case 0:this.textField.setText(str);
				break;
				case 1:this.textField_1.setText(str);
				break;
				case 2:this.textField_2.setText(str);
				break;
				case 3:this.textField_3.setText(str);
				break;
				case 4:this.textField_4.setText(str);
				break;
				case 5:this.textField_5.setText(str);
				break;
				case 6:this.textField_6.setText(str);
				break;
				case 7:this.textField_7.setText(str);
				break;
				case 8:this.textField_8.setText(str);
				break;
				case 9:this.textField_9.setText(str);
				break;
		}
	}
	public void setTextFieldColor(Color color,int i) {
		switch(i) {
			case 1:this.textField_1.setBackground(color);
			break;
			case 2:this.textField_2.setBackground(color);
			break;
			case 3:this.textField_3.setBackground(color);
			break;
			case 4:this.textField_4.setBackground(color);
			break;
		}
	}
	/*public void showstate(int i) {
		switch(i) {
			case 1:
		}
	}*/
	public String getTextFieldString() {
		String temp;
		temp=this.textField.getText();
		return temp;
	}
	public String getInput(){
		return this.runseq;
	}
	public static void main(String[] args) {
		MyFrame myframe=new MyFrame();
		String inputString;
		inputString=myframe.getInput();
		try {
			Thread.currentThread().sleep(5000);
		}
		catch(InterruptedException e){}
		System.out.println(myframe.getInput());
		System.out.println(inputString);
	}
	public int getmutex() {
		return this.mutex;
	}

}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -