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

📄 mainfrm.java

📁 这是关于影片管理的
💻 JAVA
字号:
import java.awt.*;
import java.awt.event.*;
import java.util.*;
import javax.swing.*;
import javax.swing.table.*;
import javax.swing.event.*;
import java.sql.*;
public class MainFrm extends JFrame{
	JPanel p;
	BorderLayout borderLayout1=new BorderLayout();
	GridLayout gridLayout1=new GridLayout(11,1,4,4);
	JSplitPane jSplitPanel=new JSplitPane();
    JPanel jPanel1=new JPanel();
    JPanel jPanel2=new JPanel();
	JLabel jLabel1=new JLabel();
	JLabel jLabel2=new JLabel();
	JButton jButton1=new JButton();
	JButton jButton2=new JButton();
	JButton jButton3=new JButton();
	JButton jButton4=new JButton();
	JButton jButton5=new JButton();
	JButton jButton6=new JButton();
	JComboBox jComboBox1=new JComboBox();
	JComboBox jComboBox2=new JComboBox();
	JTextField jTextField1=new JTextField();
	JScrollPane jScrollPane1=new JScrollPane();
	JTable jTable1=new JTable(new MyTableModel());
	Connection con;
	Statement stmt;
	Vector columnData=new Vector();
	Vector rowData=new Vector();
	//构造函数
	public MainFrm(){
		enableEvents(AWTEvent.WINDOW_EVENT_MASK);
		try{
			jbInit();
		}
		catch(Exception e){
			e.printStackTrace();
		}
	}
	//画出整个界面
	private void jbInit()throws Exception{
		p=new JPanel();
		p.setLayout(borderLayout1);
		this.getContentPane().add(p);
		this.setSize(new Dimension(700,405));
		this.setTitle("影片管理系统");
		jPanel1.setLayout(gridLayout1);
		jLabel1.setText("  搜索项");
		jLabel2.setText("  排序项");
		jButton1.setText("搜索");
		jButton1.setToolTipText("搜索影片");
		jButton1.addActionListener(new java.awt.event.ActionListener(){
			public void actionPerformed(ActionEvent e){
				jButton1_actionPerformed(e);
			}
		});
		jButton2.setText("全部显示");
		jButton2.setToolTipText("显示数据库中所有影片");
		jButton2.addActionListener(new java.awt.event.ActionListener(){
			public void actionPerformed(ActionEvent e){
				jButton2_actionPerformed(e);
			}
		});
		jButton3.setText("增加");
		jButton3.setToolTipText("增加影片");
		jButton3.addActionListener(new java.awt.event.ActionListener(){
			public void actionPerformed(ActionEvent e){
				jButton3_actionPerformed(e);
			}
		});
		jButton4.setText("删除");
		jButton4.setToolTipText("删除影片");
		jButton4.addActionListener(new java.awt.event.ActionListener(){
			public void actionPerformed(ActionEvent e){
				jButton4_actionPerformed(e);
			}
		});
		jButton5.setText("修改");
		jButton5.setToolTipText("修改影片");
		jButton5.addActionListener(new java.awt.event.ActionListener(){
			public void actionPerformed(ActionEvent e){
				jButton5_actionPerformed(e);
			}
		});
		jButton6.setText("排序");
		jButton6.setToolTipText("影片排序");
		jButton6.addActionListener(new java.awt.event.ActionListener(){
			public void actionPerformed(ActionEvent e){
				jButton6_actionPerformed(e);
			}
		});
	    p.add(jPanel1,"West");
	    jPanel1.add(jLabel1);
	    jPanel1.add(jComboBox1);
	    jPanel1.add(jTextField1);
	    jPanel1.add(jButton1);
	    jPanel1.add(jButton2);
	    jPanel1.add(jButton3);
	    jPanel1.add(jButton4);
	    jPanel1.add(jButton5);
	    jPanel1.add(jLabel2);
	    jPanel1.add(jComboBox2);
	    jPanel1.add(jButton6);
	    p.add(jScrollPane1,"Center");
	    jScrollPane1.getViewport().add(jTable1,null);
	    jComboBox1.addItem("影片名称");
	    jComboBox1.addItem("出品时间");
	    jComboBox1.addItem("播放介质");
	    jComboBox1.addItem("影片类型");
	    jComboBox1.addItem("影片导演");
	    jComboBox1.addItem("出品国家");
	    jComboBox1.addItem("影片影员");
	    columnData.addElement("影片名称");
	    columnData.addElement("出品时间");
	    columnData.addElement("播放介质");
	    columnData.addElement("影片类型");
	    columnData.addElement("影片导演");
	    columnData.addElement("出品国家");
	    columnData.addElement("影片影员");
	    jComboBox2.addItem("影片名称");
	    jComboBox2.addItem("出品时间");
	    jComboBox2.addItem("播放介质");
	    jComboBox2.addItem("影片类型");
	    jComboBox2.addItem("影片导演");
	    jComboBox2.addItem("出品国家");
	    jComboBox2.addItem("影片影员");
	    DefaultTableModel model=(DefaultTableModel)jTable1.getModel();
	    model.setDataVector(rowData,columnData);
	    TableColumn column;
	    column=jTable1.getColumn("影片名称");
	    column.setMinWidth(100);
	    column=jTable1.getColumn("出品时间");
	    column.setMinWidth(60);
	    column=jTable1.getColumn("播放介质");
	    column.setMinWidth(60);
	    column=jTable1.getColumn("影片类型");
	    column.setMinWidth(100);
	    column=jTable1.getColumn("影片导演");
	    column.setMinWidth(80);
	    column=jTable1.getColumn("出品国家");
	    column.setMinWidth(80);
	    column=jTable1.getColumn("影片影员");
	    column.setMinWidth(80);
	    jTable1.getSelectionModel().addListSelectionListener(new ListSelectionListener(){
	    	public void valueChanged(ListSelectionEvent e){
	    		if(jTable1.getSelectedRow()!=-1){
	    			jButton4.setEnabled(true);
	    			jButton5.setEnabled(true);
	    		}
	    	}
	    });
	    String url="jdbc:odbc:Movie";
	    String username = "anonymous";
        String password = "guest";
        //加载JDBC-ODBC桥驱动
	    Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
	    //创建数据库连接
	    con=DriverManager.getConnection(url, username, password);
	    stmt=con.createStatement();
	    //在打开之处就将整个数据库文件内容显示
	    String sql="SELECT * FROM movie";
	    update(sql);
	}
	//关闭窗口
	protected void processWindowEvent(WindowEvent e){
		super.processWindowEvent(e);
		if(e.getID()==WindowEvent.WINDOW_CLOSING){
			System.exit(0);
		}
	}
	//搜索按钮的触发事件
	void jButton1_actionPerformed(ActionEvent e){
		int n=jComboBox1.getSelectedIndex();
		String value=jTextField1.getText().trim();
		String columnName=getColumnName(n);
		String sql="";
		if(columnName!=null){
            if(columnName=="name"){
              	sql="SELECT * FROM movie WHERE name='"+value+"'";
            }
            else if(columnName=="time"){
                sql="SELECT * FROM movie WHERE time='"+value+"'";
            }
    		else if(columnName=="gener"){
				sql="SELECT * FROM movie WHERE gener='"+value+"'";
			}
			else if(columnName=="format"){
				sql="SELECT * FROM movie WHERE format='"+value+"'";
			}
			else if(columnName=="director"){
				sql="SELECT * FROM movie WHERE director='"+value+"'";
			}
			else if(columnName=="country"){
				sql="SELECT * FROM movie WHERE country='"+value+"'";
			}
			else if(columnName=="actor"){
				sql="SELECT * FROM movie WHERE actor='"+value+"'";
			}
			update(sql);
			jButton4.setEnabled(false);
			jButton5.setEnabled(false);
		}
		else{
			return;
		}
	}
	//全部显示按钮的触发事件
	void jButton2_actionPerformed(ActionEvent e){
		String sql="SELECT * FROM movie";
		update(sql);
		jButton4.setEnabled(false);
		jButton5.setEnabled(false);
	}
	//增加按钮的触发事件
	void jButton3_actionPerformed(ActionEvent e){
		InputDlg dlg=new InputDlg(this,"添加记录",true);
		int x=getX()+getWidth()/2-dlg.getWidth()/2;
		int y=getY()+getHeight()/2-dlg.getHeight()/2;
		dlg.setLocation(x,y);
		dlg.show();
	}
	//删除按钮的触发事件
	void jButton4_actionPerformed(ActionEvent e){
		int n=jComboBox1.getSelectedIndex();
		String name=(String)jTable1.getValueAt(n,0);
		String sql="DELETE FROM movie WHERE name='"+name+"'";
		try{
			stmt.executeUpdate(sql);
		}
		catch(SQLException ev){
			System.out.println(ev.getMessage());
		}
		DefaultTableModel model=(DefaultTableModel)jTable1.getModel();
		model.removeRow(n);
		jButton4.setEnabled(false);
		jButton5.setEnabled(false);
	}
	//修改按钮的触发事件
	void jButton5_actionPerformed(ActionEvent e){
		String data[]=new String[7];
		int r=jTable1.getSelectedRow();
		for(int i=0;i<7;i++){
			data[i]=(String)jTable1.getValueAt(r,i);
		}
		InputDlg dlg=new InputDlg(this,"修改记录",true,data);
		int x=getX()+getWidth()/2-dlg.getWidth()/2;
		int y=getY()+getHeight()/2-dlg.getHeight()/2;
		dlg.setLocation(x,y);
		dlg.show();
	}
	//排序按钮的触发事件
	void jButton6_actionPerformed(ActionEvent e){
		String sql="";
		int n=jComboBox2.getSelectedIndex();
		String columnName=getColumnName(n);
		if(columnName!=null){
		    if(columnName=="name"){
		        sql="SELECT * FROM movie ORDER BY name";
            }
            else if(columnName=="time"){
		        sql="SELECT * FROM movie ORDER BY time";
            }
    		else if(columnName=="gener"){
		        sql="SELECT * FROM movie ORDER BY gener";
			}
			else if(columnName=="format"){
		        sql="SELECT * FROM movie ORDER BY format";
			}
			else if(columnName=="director"){
		        sql="SELECT * FROM movie ORDER BY director";
			}
			else if(columnName=="country"){
		        sql="SELECT * FROM movie ORDER BY country";
			}
			else if(columnName=="actor"){
		        sql="SELECT * FROM movie ORDER BY actor";
			}
			update(sql);
			jButton4.setEnabled(false);
			jButton5.setEnabled(false);
		}
	}
	//取下拉框中各对应的名称
	String getColumnName(int index){
		if(index==0){
			return "name";
		}
		else if(index==1){
			return "time";
		}
		else if(index==2){
			return "gener";
		}
		else if(index==3){
			return "format";
		}
		else if(index==4){
			return "director";
		}
		else if(index==5){
			return "country";
		}
		else if(index==6){
			return "actor";
		}
		else{
			return null;
		}
	}
	//增加影片
	void addRecord(String data[]){
		String sql="INSERT INTO movie VALUES('"+data[0]+"'";
		for(int i=1;i<7;i++){
			sql+=",'"+data[i]+"'";
		}
		sql+=")";
		try{
			stmt.executeUpdate(sql);
		}
		catch(SQLException e){
			System.out.println(e.getMessage());
			return;
		}
		DefaultTableModel model=(DefaultTableModel)jTable1.getModel();
		model.addRow(data);
	}
	//编辑影片
	void editRecord(String data[]){
		int n=jComboBox1.getSelectedIndex();
		String name=(String)jTable1.getValueAt(n,0);
		String sql="DELETE FROM movie WHERE name='"+name+"'";
		try{
			stmt.executeUpdate(sql);
		}
		catch(SQLException ev){
			System.out.println(ev.getMessage());
		}
		DefaultTableModel model=(DefaultTableModel)jTable1.getModel();
		model.removeRow(n);
		addRecord(data);
	}
	//修改影片
	void update(String sql){
		DefaultTableModel model=(DefaultTableModel)jTable1.getModel();
		int count=jTable1.getRowCount();
		for(int i=0;i<count;i++){
			model.removeRow(0);
		}
		try{
			ResultSet rs=stmt.executeQuery(sql);
			while(rs.next()){
				String name=rs.getString(1).trim();
				String time=rs.getString(2).trim();
                String gener=rs.getString(3).trim();
				String format=rs.getString(4).trim();
				String director=rs.getString(5).trim();
				String country=rs.getString(6).trim();
				String actor=rs.getString(7).trim();
				String row[]={name,time,gener,format,director,country,actor};
				model.addRow(row);
			}
		}
		catch(SQLException e){
			System.out.println(e.getMessage());
		}
	}
    class MyTableModel extends DefaultTableModel{
    	public boolean isCellEditable(int r,int c){
    		return false;
    	}
    }
}

⌨️ 快捷键说明

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