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

📄 w.java

📁 模拟实现数据库功能 添加删除查找功能
💻 JAVA
📖 第 1 页 / 共 2 页
字号:

import java.io.*;
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import javax.swing.table.DefaultTableModel;
import java.util.LinkedList;
import javax.swing.table.TableColumn;
import javax.swing.event.ListSelectionEvent;
import javax.swing.event.ListSelectionListener;
import javax.swing.event.*;
import javax.swing.table.TableColumn;
import javax.swing.JTable.*;
import java.util.*;
import javax.swing.table.AbstractTableModel;

//主界面


	
class JieMian extends JFrame implements ItemListener,ActionListener
{
 Container c;
 Checkbox checkbox1,checkbox2,checkbox3,checkbox4;
 CheckboxGroup mygroup;
 JButton b1,b2;
 JLabel l1;
 JPanel p1,p2,p3,p4;
 JFileChooser fileChooser;
 String filename;
 public JieMian()
	{
	 super("dbms");

	 fileChooser=new JFileChooser("f:/");
	 c=getContentPane();
	 mygroup=new CheckboxGroup();
	 checkbox1=new Checkbox("建新表",mygroup,true);
	 checkbox2=new Checkbox("打开已有表",mygroup,true);
     checkbox1.addItemListener(this);
	 checkbox2.addItemListener(this);
	
	 b1=new JButton("确定");
	 b2=new JButton("取消");
	 b2.addActionListener(this);
	 l1=new JLabel("+++请选择您要执行的命令+++");
	 
	 p1=new JPanel();
	 p2=new JPanel();
	 p3=new JPanel();
	 p4=new JPanel();
	 p1.add(l1);
	 p2.add(checkbox1);
	 p2.add(checkbox2);
	
	 p3.add(b2);
	 p4.add(p1);p4.add(p2);p4.add(p3);
	 p4.setLayout(new GridLayout(3,1));
	 c.add(p4);
	 setVisible(false);
	 setSize(300,200);
	 setLocation(new Point(300,300));
	 validate();
	 show();
	}
////////////////////////////////////////////////////////////////
public void itemStateChanged(ItemEvent e)
	{		
		if ( e.getSource () == checkbox1 )
		{			
			create ct = new create ();
		}
		
		if ( e.getSource () == checkbox2 )
		{			
        	JFileChooser fc = new JFileChooser () ;
        	fc.setLocation(500,450);
        	fc.setDialogTitle("打开表");
        	int returnVal = fc.showOpenDialog(this);
        	File file=fc.getSelectedFile();
			filename=file.getPath();
			openfile o=new openfile(filename);
        	o.show();
		}
		
	}
public void actionPerformed(ActionEvent e)
	        {
			  if(e.getSource()==b1){}
			  if(e.getSource()==b2){w.fr.setVisible(true);setVisible(false);}
		    }

		 
	
	
}
////////////////////////////////////////////////////////////////
//建表界面
class create extends JFrame implements ActionListener {	
	public static Container c;
    public JPanel ta;
    private DefaultTableModel dt;
    private JTable table;
    private Object []data;
    private LinkedList lst,ls;
    private JMenuItem menuItem;
    private JPopupMenu popup;
    private int selectedRow;
	JButton b1,b2,b3,b4,b5;
	JPanel p1,p2;
/////////////////////////////////////////////////////////
      public create () {    	
    	super ( "建表" ) ;
    	
    	setLocation ( 320,275 ) ;
    	setSize ( 400,250 ) ;
    	c = getContentPane () ;
    	b1=new JButton("尾插");
		b2=new JButton("前插");
		b3=new JButton("确定");
		b4=new JButton("删除");
		b5=new JButton("取消");
		b1.addActionListener(this);
		b2.addActionListener(this);
		b3.addActionListener(this);
		b4.addActionListener(this);
		b5.addActionListener(this);
        p1=new JPanel();
		p2=new JPanel();
		p1.add(b1);p1.add(b2);p1.add(b3);p1.add(b4);p1.add(b5);
        c.setLayout ( new FlowLayout()) ;
        ta=new JPanel();
        c.add(ta) ;c.add(p1);
        
  		 
         String[] columnNames = { "字段名", "字段类型", "字段长度" ,"关键字"} ;
 
         dt=new DefaultTableModel ( columnNames , 1 ) ;
         table = new  JTable ( dt ) ;
  
         table.setPreferredScrollableViewportSize ( new Dimension ( 370, 96 ) ) ;

         table.getColumnModel () .getColumn (0) .setPreferredWidth (80) ;
         table.getColumnModel () .getColumn (1) .setPreferredWidth (40) ;
         table.getColumnModel () .getColumn (2) .setPreferredWidth (30) ;
		 table.getColumnModel () .getColumn (3) .setPreferredWidth (20) ;

         TableColumn charColumn = table.getColumnModel () .getColumn (1) ;
         JComboBox comboBox1 = new JComboBox();
         comboBox1.addItem ( "char" ) ;
         comboBox1.addItem ( "int" ) ;
		 comboBox1.addItem ("double");
         charColumn.setCellEditor ( new DefaultCellEditor ( comboBox1 ) ) ;

         TableColumn lenColumn = table.getColumnModel () .getColumn (2) ;
         JComboBox comboBox2 = new JComboBox () ;
         comboBox2.addItem ( "1" ) ;
         comboBox2.addItem ( "2" ) ;
         comboBox2.addItem ( "4" ) ;
         comboBox2.addItem ( "8" ) ;
         lenColumn.setCellEditor ( new DefaultCellEditor ( comboBox2 ) );

		 TableColumn intColumn =table.getColumnModel().getColumn(3);
		 JComboBox comboBox3=new JComboBox();
         comboBox3.addItem("是");
		 comboBox3.addItem("否");
		 intColumn.setCellEditor(new DefaultCellEditor(comboBox3));

         JScrollPane scrollPane = new JScrollPane(table);
         ta.add(scrollPane);
         
         table.setSelectionMode ( ListSelectionModel.SINGLE_SELECTION );
         ListSelectionModel rowSM = table.getSelectionModel();
         rowSM.addListSelectionListener ( new ListSelectionListener() {
                public void valueChanged(ListSelectionEvent e) {
                    if ( e.getValueIsAdjusting() ) return;
                    ListSelectionModel lsm = ( ListSelectionModel ) e.getSource();
                    selectedRow = lsm.getMinSelectionIndex();
                }
            });
         setVisible ( true ) ;
       
               
    } 
    //////////////////////////////////////////////////////////  
	  public Boolean passnext () {	
        int i = 0,len;
        String name;
        lst = new LinkedList () ;
        int rowNum = table.getRowCount () ;
        try{      	
        	for ( i = 0 ; i < rowNum ; i++ ){       		
        		name = table.getValueAt ( i,0 ) . toString () ;
                lst.addLast ( name ) ;
                System.out.println(name);
                }
                
             }
             catch ( NullPointerException e ) {              
        		i++;
        		JOptionPane.showMessageDialog
        		( create.c," 第 "+i+" 行 有空值 !","ererr",
        		JOptionPane.ERROR_MESSAGE ) ;
        		return Boolean.FALSE;
        	}        
        return Boolean.TRUE;
   }
   /////////////////////////////////////////////////
	public class PopupListener extends MouseAdapter {
    	public void mousePressed(MouseEvent e) {
        maybeShowPopup(e);
    	}
    public void mouseReleased(MouseEvent e) {
        maybeShowPopup(e);
    	}
    private void maybeShowPopup(MouseEvent e) {
        if (e.isPopupTrigger()) {
            popup.show(e.getComponent(),e.getX(), e.getY());
        }
    }
}  ////////////////////////////////////////////////// 
    /////////////////////////////////////////////////    
     public void actionPerformed ( ActionEvent e ) {    	
        String cmd = e.getActionCommand () ;
        if (e.getSource()== b1){
        	dt.addRow(data);
        }
        if ( e.getSource()== b2 ) {      	
      		if ( selectedRow == -1 ) 
      		 	selectedRow++;
      			dt.insertRow ( selectedRow,data ) ;
      		}
        if (e.getSource()== b3) {        	
            if(passnext().booleanValue()){
             setVisible(false);
             putin sd;
         	 sd=new putin(lst);
            	}       	
        	}
        
      	if ( e.getSource()== b4 ){
      		if ( selectedRow == -1 )  
      			selectedRow++;
      			dt.removeRow ( selectedRow ) ;
      			}
      		
        if ( e.getSource()== b5 ) {        	
            setVisible(false);          
            }
	 }
}
/////////////////////////////////////////////////////////
/////////输入数据类
class putin extends JFrame implements ActionListener{
        Container c;
        JPanel p1,p2;
        JTable table;
        DefaultTableModel dt; 
        JButton b1,b2,b3,b4,b5;
        String[] data;
        int selectedRow;
        String filename=null;
        JMenuItem menuItem;
     	JPopupMenu popup;       
        int lenght;
        LinkedList ls,lst;
        private boolean ss=false;
       
      putin(LinkedList ls){       	
           super("数据内容");
           this.ls=ls;
           this.lenght=ls.size();
           c=getContentPane();
           c.setLayout(new FlowLayout());
           setSize(500,350);
           setLocation(170,150);
           p1=new JPanel();
           p2=new JPanel();
           b1=new JButton("添加");
           b1.addActionListener(this);
           b2=new JButton("插入");
           b2.addActionListener(this);
		   b3=new JButton("保存");
		   b3.addActionListener(this);
           b4=new JButton("删除");
           b4.addActionListener(this);
		   b5=new JButton("返回");
		   b5.addActionListener(this);
           p2.add(b1);
           p2.add(b2);
		   p2.add(b3);
           p2.add(b4);
		   p2.add(b5);
           p1.setLayout(new GridLayout(1,0));
          
           dt=new DefaultTableModel(ls.toArray(),1);
           table = new  JTable(dt);
           table.setRowHeight(20);
           table.setPreferredScrollableViewportSize(new Dimension(450,230));
           p1.add(table);
           c.add(p1);
           c.add(p2);
           JScrollPane scrollPane = new JScrollPane(table);
           p1.add(scrollPane);
     
           table.setSelectionMode ( ListSelectionModel.SINGLE_SELECTION );
           ListSelectionModel rowSM = table.getSelectionModel();
           rowSM.addListSelectionListener ( new ListSelectionListener() {
           public void valueChanged(ListSelectionEvent e) {
           if ( e.getValueIsAdjusting() ) return;
                    ListSelectionModel lsm = ( ListSelectionModel ) e.getSource();
                    selectedRow = lsm.getMinSelectionIndex();
                }
            });

           setVisible(true);
       }
       /////////////////////////////////////////////
	   //保存文件
       public boolean savefile(String filename)
       {
       	int i=0,j=0;
       	String s=null;
       
       	try{	
       	FileWriter out=new FileWriter(filename);
       	BufferedWriter bout=new BufferedWriter(out);
       	String charname;
       	int rowNum=table.getRowCount();   	
        try{
        	for(j=0;j<ls.size();j++)
        	{
        		s=ls.get(j).toString();
        		bout.write(s);
        		bout.write(" ");
        	}
            bout.newLine();	
            for(i=0;i<rowNum;i++){
        	for(j=0;j<lenght;j++)
        	{

⌨️ 快捷键说明

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