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

📄 data.java

📁 (文件数据库系统)功能强大,很有价值的代码.
💻 JAVA
字号:
import java.io.*;
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
import java.util.*;


public class data extends JFrame{
	private JTextArea text;
	private JTextArea error;
	private SystemTab systab;
	
	data(SystemTab tab)
	{
		super(" change data ");
		text=new JTextArea(20,30);
		text.setEditable(true);
		Button button1=new Button("prompt");
	Button	button2=new Button("Commit");
	Button button3=new Button("Clear");
	

		error=new JTextArea(8,30);
		error.setEditable(false);
		systab=tab;
	
	
		 button1.addActionListener(new ActionListener(){
        	public void actionPerformed(ActionEvent e){
        	JOptionPane.showMessageDialog(null,"Create\tInsert\tDelete...","prompt",JOptionPane.INFORMATION_MESSAGE);
        }});
        		 button3.addActionListener(new ActionListener(){
        	public void actionPerformed(ActionEvent e){text.setText("");}});
 
        button2.addActionListener(new ActionListener(){
        	public void actionPerformed(ActionEvent e){
        	StringTokenizer token=new StringTokenizer(text.getText()," \t\n\r\f,()");
        	String next;int count=0;
        	error.setText("");
        		if(token.hasMoreTokens())
				{
					
				next=token.nextToken();
				if(next.equals("create"))
				{
					if(!token.nextToken().equals("table"))return;
					Header h=new Header();
					
					String str=token.nextToken();
					h.setName(str);
				try{	File file=new File(str+".dat");
					file.createNewFile();}
					catch(IOException ex)
					{
					}
					str=token.nextToken();
					h.setKey(str);
				if(token.hasMoreTokens())	str=token.nextToken();
				else {error.setText("no key type");return;}
				h.setType(str);
				count++;
			
			String[] att=new String[20];
			int i=0;String type;
				while(token.hasMoreTokens())
				{
					
					str=token.nextToken();
					if(token.hasMoreTokens())	type=token.nextToken();
				else{ error.setText("no attribute type");return;
			}
				if(type.equals("int")||type.equals("real")||type.equals("string")||type.equals("boolean"))
				{
					att[i++]=str;
					att[i++]=type;count++;
				}
				else {error.setText("type invalid");return;}
				
			
				
			}
			h.setCount(count);
			h.setAttri(att);
			systab.add(h);return;
		}
		if(next.equals("insert")){
			if(!token.nextToken().equals("into"))
			error.setText("sematic error");
			String name=token.nextToken();
		Header h=systab.getH(systab.Search(name));
		WriteFile add=new WriteFile(h);
		String key=new String(token.nextToken());
		if(key==null)
		error.setText("key can not be null");
		String att[]=new String[h.getCount()-1];
		for(int k=0;k<att.length;k++)
		if(token.hasMoreTokens())
		att[k]=token.nextToken();
		else error.setText("need more attribute value");
		add.addRecord(key,att);
		add.close();return;
	}
	if(next.equals("delete"))
	{
		String key=token.nextToken();
			if(key==null)
		error.setText("key can not be null");
	
		if(!token.nextToken().equals("from"))
			error.setText("sematic error");
			String name=token.nextToken();
			Header h=systab.getH(systab.Search(name));
		WriteFile del=new WriteFile(h);
		del.Delete(key);
		del.close();return;
	}
	if(next.equals("update"))
	{
			String name=token.nextToken();
		Header h=systab.getH(systab.Search(name));
	WriteFile up =new WriteFile(h);
	String attname=token.nextToken();
	String attri[]=h.getAttri();int k;
	for( k=0;k<attri.length;k++)
	if(attri[k].equals(attname))
	break;
	else {error.setText("no such attribute name");return;}
	
	token.nextToken();
	
	String attvalue=token.nextToken();
	token.nextToken();
		token.nextToken();
	token.nextToken();
String key=token.nextToken();
up.update(key,attvalue,k);up.close();return;
}
}

}});
	
	
	
		
		
	
		
		
		
		
			
			
			
			
				
			
					
					
	
        
        
        
        
        
        	JPanel pane=new JPanel();

        pane.add(button1);
        pane.add(button2);
                pane.add(button3);

  
       

        
		
		Container container=getContentPane();container.setLayout(new BorderLayout());
		container.add(pane,BorderLayout.NORTH);
		        container.add(new JScrollPane(text), BorderLayout.CENTER);

		container.add(error,BorderLayout.SOUTH);
		setSize(500,500);
		    setVisible(true);    

	}
	public static void main(String args[])
	{
		data app=new data();
					app.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

}
}

⌨️ 快捷键说明

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