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

📄 ll1gui.java

📁 编译原理LL1文法的实验
💻 JAVA
📖 第 1 页 / 共 2 页
字号:
import javax.swing.JPanel;
import java.awt.*;
import javax.swing.JFrame;
import javax.swing.JButton;
import javax.swing.JLabel;
import java.awt.CardLayout;
import java.awt.TextArea;
import java.io.*;
import javax.swing.table.*;
import javax.swing.JTable;
import javax.swing.JScrollPane;
import javax.swing.JOptionPane;
import javax.swing.JTextField;


/*
 * 创建日期 2005-12-21
 *
 * TODO 要更改此生成的文件的模板,请转至
 * 窗口 - 首选项 - Java - 代码样式 - 代码模板
 */

/**
 * @author 段成 软件工程0301
 *
 * TODO 要更改此生成的类型注释的模板,请转至
 * 窗口 - 首选项 - Java - 代码样式 - 代码模板
 */
public class LL1Gui {
    CardLayout mycard;
	private JPanel jContentPane = null;
	private JFrame jFrame = null;  //  @jve:decl-index=0:visual-constraint="100,64"
	private JPanel jPanel = null;
	private JButton jButton = null;
	private JLabel jLabel = null;
	private JPanel jPanel1 = null;  //  @jve:decl-index=0:visual-constraint="106,55"
	private JLabel jLabel1 = null;
	private JButton jButton1 = null;
	private JButton jButton2 = null;
	private JButton jButton3 = null;
	private JButton jButton4 = null;
	private TextArea textArea = null;
	private JPanel jPanel2 = null;  //  @jve:decl-index=0:visual-constraint="70,293"
	private JTable jTable = null;
	private JScrollPane jScrollPane = null;
	private JButton jButton5 = null;
	private JButton jButton6 = null;
	private JTextField jTextField = null;
	private JButton jButton7 = null;
	FileDialog fd;
	LL1 l=new LL1();
	private JLabel jLabel2 = null;
	private JTextField jTextField1 = null;
	private JLabel jLabel3 = null;
	private JTextField jTextField2 = null;
	private JLabel jLabel4 = null;
	private JTextField jTextField3 = null;
	
	int mark=0;
	
	/**
	 * This method initializes jContentPane	
	 * 	
	 * @return javax.swing.JPanel	
	 */    
	private JPanel getJContentPane() {
		if (jContentPane == null) {
			jContentPane = new JPanel();
			
			mycard=new CardLayout();
			jContentPane.setLayout(mycard);
			jContentPane.add(getJPanel(), "First");
			jContentPane.add(getJPanel1(), getJPanel1().getName());
			jContentPane.add(getJPanel2(), getJPanel2().getName());
			}
		return jContentPane;
	}
	/**
	 * This method initializes jFrame	
	 * 	
	 * @return javax.swing.JFrame	
	 */    
	public JFrame  getJFrame() {
		if (jFrame == null) {
			jFrame = new JFrame();
			jFrame.setSize(306, 247);
			jFrame.setTitle("LL(1)文法判定-java实现");
			jFrame.setContentPane(getJContentPane());
			
			jFrame.setVisible(true);
			jFrame.setLocation(380, 230);
		}
		return jFrame;
	}
	/**
	 * This method initializes jPanel	
	 * 	
	 * @return javax.swing.JPanel	
	 */    
	private JPanel getJPanel() {
		if (jPanel == null) {
			jLabel4 = new JLabel();
			jLabel3 = new JLabel();
			jLabel2 = new JLabel();
			jLabel1 = new JLabel();
			jLabel = new JLabel();
			jPanel = new JPanel();
			jPanel.setLayout(null);
			jPanel.setName("jPanel");
			jLabel.setBounds(90, 6, 106, 24);
			jLabel.setText("华北电力大学");
			jLabel1.setText("软件工程0301班 段成");
			jLabel1.setLocation(65, 34);
			jLabel1.setSize(163, 28);
			jLabel2.setBounds(31, 65, 104, 25);
			jLabel2.setText("文法开始符");
			jLabel3.setBounds(33, 96, 100, 20);
			jLabel3.setText("非终结符");
			jLabel4.setBounds(34, 125, 99, 19);
			jLabel4.setText("终结符");
			jPanel.add(getJButton(), null);
			jPanel.add(jLabel, null);
			jPanel.add(jLabel1, null);
			jPanel.add(jLabel2, null);
			jPanel.add(getJTextField1(), null);
			jPanel.add(jLabel3, null);
			jPanel.add(getJTextField2(), null);
			jPanel.add(jLabel4, null);
			jPanel.add(getJTextField3(), null);
		}
		return jPanel;
	}
	/**
	 * This method initializes jButton	
	 * 	
	 * @return javax.swing.JButton	
	 */    
	private JButton getJButton() {
		if (jButton == null) {
			jButton = new JButton();
			jButton.setBounds(90, 165, 106, 23);
			jButton.setText("读入文法");
			jButton.addActionListener(new java.awt.event.ActionListener() { 
				public void actionPerformed(java.awt.event.ActionEvent e) {    
				if(jTextField1.getText().equals("")||jTextField2.getText().equals("")||jTextField3.getText().equals("")){
				   JOptionPane.showMessageDialog(null,"您输入的文法信息不全","提示",0) ;
				}
					else{
			
			try{
					
					fd=new FileDialog(jFrame,"读入文法");
					fd.setVisible(true);
					File f1=new File(fd.getDirectory(),fd.getFile());
		            FileReader in=new FileReader(f1);
					BufferedReader bufferin=new BufferedReader(in); 
					String str=null;
					
				    
					/*
					l.termin="+*i()";
				    l.non_ter="ETRYF";
				    l.v="ETRYF+*i()";
				    l.start='E';
				  */
				    
					l.termin=jTextField3.getText();
			        l.nonter=jTextField2.getText();
				    l.start=jTextField1.getText().charAt(0);
			        l.v=l.nonter+l.termin;
				    
				    
				    /*l.termin="adbe";
				    l.non_ter="SMHA";
				    l.v="SMHAabde";
				    l.start='S';
			   	*/    
			        int i=0;
				    while((str=bufferin.readLine())!=null) {
					    l.split(str);
				        textArea.append(str+"\n");
						}
					
					  l.initialize();
					
					bufferin.close();
					in.close();
					mycard.next(jContentPane);
				}
				
				catch(Exception ef){	System.out.println(ef);}
				
		}}	});
		}
		return jButton;
	}
	/**
	 * This method initializes jPanel1	
	 * 	
	 * @return javax.swing.JPanel	
	 */    
	private JPanel getJPanel1() {
		if (jPanel1 == null) {
			jPanel1 = new JPanel();
			jPanel1.setLayout(null);
			jPanel1.setPreferredSize(new java.awt.Dimension(40,40));
			jPanel1.setSize(298, 210);
			jPanel1.setName("jPanel1");
			jPanel1.add(getJButton1(), null);
			jPanel1.add(getJButton2(), null);
			jPanel1.add(getJButton3(), null);
			jPanel1.add(getJButton4(), null);
			jPanel1.add(getTextArea(), null);
			jPanel1.add(getJButton6(), null);
			jPanel1.add(getJTextField(), null);
			jPanel1.add(getJButton7(), null);
		}
		return jPanel1;
	}
	/**
	 * This method initializes jButton1	
	 * 	
	 * @return javax.swing.JButton	
	 */    
	private JButton getJButton1() {
		if (jButton1 == null) {
			jButton1 = new JButton();
			jButton1.setText("first集");
			jButton1.setLocation(3, 31);
			jButton1.setSize(85, 19);
			jButton1.addActionListener(new java.awt.event.ActionListener() { 
				public void actionPerformed(java.awt.event.ActionEvent e) {    
				
		    			textArea.setText("");
				
                 			
		    for(int i=0;i<l.v.length();i++){
				
				char temp[]=l.first1[i].toCharArray();
		    	
		    	textArea.append("first("+l.v.charAt(i)+")"+
						"={");
				
		    	for(int j=0;j<l.first1[i].length();j++){
					
					textArea.append(temp[j]+" ");	
					
				}
		    	textArea.append("}\n");
				
			}
				
				
				}
			});
		}
		return jButton1;
	}
	/**
	 * This method initializes jButton2	
	 * 	
	 * @return javax.swing.JButton	
	 */    
	private JButton getJButton2() {
		if (jButton2 == null) {
			jButton2 = new JButton();
			jButton2.setText("follow集 ");
			jButton2.setPreferredSize(new java.awt.Dimension(84,40));
			jButton2.setBounds(3, 57, 85, 19);
			jButton2.addActionListener(new java.awt.event.ActionListener() { 
				public void actionPerformed(java.awt.event.ActionEvent e) {    
				
					
					textArea.setText("");
					
	            for(int i=0;i<l.nonter.length();i++){
					
					char temp[]=l.follow[i].toCharArray();
			    	
			    	textArea.append("follow("+l.v.charAt(i)+")"+
							"={");
					
			    	for(int j=0;j<l.follow[i].length();j++){
						
						textArea.append(temp[j]+" ");	
						
					}
			    	textArea.append("}\n");
					
				}
					}
			});
		}
		return jButton2;
	}
	/**
	 * This method initializes jButton3	
	 * 	
	 * @return javax.swing.JButton	
	 */    
	private JButton getJButton3() {
		if (jButton3 == null) {
			jButton3 = new JButton();
			jButton3.setText("select集");
			jButton3.setBounds(3, 84, 85, 19);
			jButton3.addActionListener(new java.awt.event.ActionListener() { 
				public void actionPerformed(java.awt.event.ActionEvent e) {    
					textArea.setText("");
			        for(int i=0;i<l.count;i++){
						char temp[]=l.select[i].toCharArray();
			    	textArea.append("select("+l.left[i]+"" +"->"+l.right[i]+")"+
							"={");
					
			    	for(int j=0;j<l.select[i].length();j++){

⌨️ 快捷键说明

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