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

📄 tablesy.java

📁 这是我的java程序,望大家多多指教,我是第一次看到这个网站,谢谢我们之间的信任.
💻 JAVA
字号:
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import javax.swing.table.*;
public class tablesy implements ActionListener
{   JFrame frame,frame1;
    JButton jb;
	JTextField jtf;
	Label lb;
	boolean flag;
    public tablesy()
	{   flag=false;
		frame=new JFrame("找子串10110的DFA状态转换表");
		Container c=frame.getContentPane();
		TableModel dataModel=new ATableModel();
		JTable table=new JTable(dataModel);
		JScrollPane jsp=new JScrollPane(table);
		table.setPreferredScrollableViewportSize(new Dimension(500,50));
		c.add(jsp,BorderLayout.CENTER);
		frame.pack();
		frame.setVisible(true);
		frame.addWindowListener(new WindowAdapter(){
			public void windowClosing(WindowEvent e){
				System.exit(0);       }
		});
		frame1=new JFrame("测试字符串是否含有10110子串0/1的串");
		Container c1=frame1.getContentPane();
		JPanel jp1,jp2;
		jp1=new JPanel();jp2=new JPanel();
		c1.add(jp1,BorderLayout.NORTH);c1.add(jp2,BorderLayout.SOUTH);
		JLabel jlb=new JLabel("请输入一串字符");
		jp1.add(jlb);
		jtf=new JTextField("",20);
		jp1.add(jtf);
		jb=new JButton("输入完后,请确定");
		jb.addActionListener(this);
        jp2.add(jb);
	    lb=new Label("测试结果显示处");
		c1.add(lb,BorderLayout.CENTER);
		frame1.pack();
		frame1.setVisible(true);
		frame1.addWindowListener(new WindowAdapter(){
			public void windowClosing(WindowEvent e){
				System.exit(0);       }
		});
	}
	public void actionPerformed(ActionEvent e)
	{
		if(e.getSource()==jb)
		{ 
			String str=jtf.getText();
			if(str.length()==0)
			{	lb.setText("对不起,不能为空,请输入");return;}
			char []date=new char[str.length()];
            for(int i=0;i<str.length();++i)
            date[i]=str.charAt(i);
			tran(date);
        }
	}
     public void tran(char a[])
  { tableDFA t=new tableDFA();
    int i,j;
     i=0;j=0;
     do{
       if(a[i]=='0') 
          j=t.stati[j][0];
        else if(a[i]=='1')
           j=t.stati[j][1];
         else 
            {lb.setText("对不起,这中间有不是0/1字符,请重新输入.");
              return;}
       if(j==t.stati.length-1)
          flag=true;
	   if(i==a.length-1&&flag)
		 { lb.setText("这个串中含有10110子串!"); return;}
	   i++;
      }while(i<a.length);
    lb.setText("这不包含10110的1/0串.");
   }
	public static void main(String[] args) 
	{
		new tablesy();
	}
}
class ATableModel extends AbstractTableModel
{   tableDFA t=new tableDFA();
	String[] colHeads={"状态","s0","s1"};
	Object[][] data={{"开始状态0",t.stati[0][0],t.stati[0][1]},
		             {"        状态1",t.stati[1][0],t.stati[1][1]},
		             {"        状态2",t.stati[2][0],t.stati[2][1]},
		             {"        状态3",t.stati[3][0],t.stati[3][1]},
		             {"        状态4",t.stati[4][0],t.stati[4][1]},
	                 {"结束状态5",t.stati[5][0],t.stati[5][1]}};
	public int getColumnCount()
	{ 
		return colHeads.length;
	}
	public int getRowCount()
	{
		return data.length;
	}
	public String getColumnName(int col)
	{
		return colHeads[col];
	}
	public Object getValueAt(int row,int col)
	{
		return data[row][col];
	}
	public Class GetColumnClass(int c)
	{ 
		return getValueAt(0,c).getClass();
	}
}
class tableDFA
{ int stati[][]={{0,1},{2,1},{0,3},{2,4},{5,1},{5,5}};
}

⌨️ 快捷键说明

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