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

📄 ckchaxun.java

📁 基于Java——SQL2005 的java课程设计 仓库管理系统。主要功能
💻 JAVA
字号:
package windows;

import java.awt.Dimension;
import java.awt.Font;
import java.awt.GridBagConstraints;
import java.awt.GridBagLayout;
import java.awt.Insets;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.KeyAdapter;
import java.awt.event.KeyEvent;
import java.io.FileInputStream;
import java.io.InputStream;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.Calendar;
import java.util.Iterator;
import java.util.List;
import java.util.Vector;

import javax.swing.DefaultCellEditor;
import javax.swing.DefaultComboBoxModel;
import javax.swing.JButton;
import javax.swing.JCheckBox;
import javax.swing.JComboBox;
import javax.swing.JComponent;
import javax.swing.JInternalFrame;
import javax.swing.JLabel;
import javax.swing.JOptionPane;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.JTable;
import javax.swing.JTextField;
import javax.swing.event.InternalFrameAdapter;
import javax.swing.event.InternalFrameEvent;
import javax.swing.table.DefaultTableModel;
import javax.swing.table.TableColumn;
import Login.Item;
import model.TbUserlist;
import sql.sql;

public class CKChaXun extends JInternalFrame{
	private JButton queryButton =new JButton("查询");
	private JButton showAllButton = new JButton("显示全部数据");
	private JComboBox endy = new JComboBox();
	private JComboBox endm= new JComboBox();
	private JComboBox endd= new JComboBox();
	private JComboBox starty= new JComboBox();
	private JComboBox startm= new JComboBox();
	private JComboBox startd= new JComboBox();
	private JComboBox Eqp_Style = new JComboBox(new String[]{"CPU","主板","内存","显卡","硬盘","电源","光驱","机箱","键鼠","声卡"}); 
	private JTextField Eqp_Name = new JTextField();
	private JCheckBox Style =new JCheckBox("设备类型",true);
	private JCheckBox Name =new JCheckBox("设备名称");
	private JCheckBox Time =new JCheckBox("出库时间");
	private JTable table;
	private DefaultTableModel tableModel;
	private TbUserlist user;
	//private int re_year,re_month;
	public CKChaXun() {
		Calendar now=Calendar.getInstance();
		int year,month,date;
		
		setMaximizable(true);
		setIconifiable(true);
		setClosable(true);
		setTitle("信息查询之出库查询");
		getContentPane().setLayout(new GridBagLayout());
		setBounds(20, 20,800,500);
	
		setupComponet(new JLabel(" 选择查询条件:"), 0, 0, 1, 1, false);
		setupComponet(Style, 1, 0,  1 ,1, false);
		setupComponet(Eqp_Style, 2, 0,  1 ,60, false);
		setupComponet(Name, 3, 0,  1 ,1, false);
		setupComponet(Eqp_Name, 4, 0,  1 ,200, false);
		
		JPanel panel = new JPanel();
		panel.add(queryButton);
		setupComponet(panel, 6, 0,  2 ,80, false);
		
		setupComponet(Time, 1, 1,  1 ,1, false);
		JPanel panel1 = new JPanel();
		panel1.add(starty);
		panel1.add(new JLabel("年"));
		panel1.add(startm);
		panel1.add(new JLabel("月"));
		panel1.add(startd);
		panel1.add(new JLabel(" 日  到  "));
		setupComponet(panel1, 2, 1,  2 ,1, false);
		
		JPanel panel2 = new JPanel();
		panel2.add(endy);
		panel2.add(new JLabel("年"));
		panel2.add(endm);
		panel2.add(new JLabel("月"));
		panel2.add(endd);
		panel2.add(new JLabel("日"));
		setupComponet(panel2, 4, 1,  1 ,1, false);
		 for(int i=2008;i<=2050;i++){
		        starty.addItem(""+i);
		        endy.addItem(""+i);
		   
		 }//初始化年下拉信息
		 year=(int)(now.get(Calendar.YEAR));
		 starty.setSelectedIndex(year-2008);
		 endy.setSelectedIndex(year-2008);
		 for(int i=1;i<=12;i++){
			 startm.addItem(""+i);
			 endm.addItem(""+i);
		 }
		 month=(int)(now.get(Calendar.MONTH));
		 startm.setSelectedIndex(0);
		 endm.setSelectedIndex(month);
		
		 for(int i=1;i<=getmonthnum(2008, 1);i++){
			 startd.addItem(""+i);
			 
		 }
		 for(int i=1;i<=getmonthnum(year, month+1);i++){
		 endd.addItem(""+i);
		 }
		 date=(int)(now.get(Calendar.DATE))-1;
		 endd.setSelectedIndex(date);
		//上面都是对日期选择中的下拉框的初始化
		JPanel pane3 = new JPanel();
		pane3.add(showAllButton);
		setupComponet(pane3, 6, 1,  2 ,1, false);
		
		table = new JTable();
		table.setAutoResizeMode(JTable.AUTO_RESIZE_OFF);//自动添加水平滚动条,如果没有的话列的长度平均分配,而且没有水平滚动条
		initTable();
		
		JScrollPane scrollPanel = new JScrollPane(table);
		scrollPanel.setPreferredSize(new Dimension(700, 350));
		setupComponet(scrollPanel, 0, 2, 8, 1, true);
		scrollPanel.setViewportView(table);
		
		
		
		starty.addActionListener(new ActionListener(){
			public void actionPerformed(ActionEvent e){
				int year,month;
				year=Integer.parseInt((String) starty.getItemAt(starty.getSelectedIndex()));
				month=Integer.parseInt((String) startm.getItemAt(startm.getSelectedIndex()));
				startd.removeAllItems();
				for(int i=1;i<=getmonthnum(year, month);i++){
					startd.addItem(""+i);
				}
				startd.setSelectedIndex(0);
			}
		});//日随着年和月的选择动态改变
		startm.addActionListener(new ActionListener(){
			public void actionPerformed(ActionEvent e){
				int year,month;
				year=Integer.parseInt((String) starty.getItemAt(starty.getSelectedIndex()));
				month=Integer.parseInt((String) startm.getItemAt(startm.getSelectedIndex()));
				startd.removeAllItems();
				for(int i=1;i<=getmonthnum(year, month);i++){
					startd.addItem(""+i);
				}
				startd.setSelectedIndex(0);
			}
		});//日随着年和月的选择动态改变
		
		endy.addActionListener(new ActionListener(){
			public void actionPerformed(ActionEvent e){
				int year,month;
				year=Integer.parseInt((String) endy.getItemAt(endy.getSelectedIndex()));
				month=Integer.parseInt((String) endm.getItemAt(endm.getSelectedIndex()));
				endd.removeAllItems();
				for(int i=1;i<=getmonthnum(year, month);i++){
					endd.addItem(""+i);
				}
				endd.setSelectedIndex(0);
			}
		});//日随着年和月的选择动态改变
		endm.addActionListener(new ActionListener(){
			public void actionPerformed(ActionEvent e){
				int year,month;
				year=Integer.parseInt((String) endy.getItemAt(endy.getSelectedIndex()));
				month=Integer.parseInt((String) endm.getItemAt(endm.getSelectedIndex()));
				endd.removeAllItems();
				for(int i=1;i<=getmonthnum(year, month);i++){
					endd.addItem(""+i);
				}
				endd.setSelectedIndex(0);
			}
		});//日随着年和月的选择动态改变
		
		showAllButton.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent e) {
				Eqp_Name.setText("");
				List list=sql.findForList("select * from tb_Out_View");
				Iterator iterator=list.iterator();
				updateTable(iterator);
				Style.setSelected(false);
				Name.setSelected(false);
				Time.setSelected(false);
				
			}
			});//显示所有信息
		
		
		queryButton.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent e) {
				//boolean select1 = Style.isSelected();
				if(Name.isSelected()&&Eqp_Name.getText().equals("")){
					JOptionPane.showConfirmDialog(CKChaXun.this, "要查询的设备名称为空,请重新填入", "E时代仓库信息管理系统出库查询提示",JOptionPane.DEFAULT_OPTION, JOptionPane.ERROR_MESSAGE);
					Eqp_Name.requestFocus();
					return;
				}
				if(!(Name.isSelected()||Style.isSelected()||Time.isSelected())){
					return;
				}
				List list=null;
				String style =(String) Eqp_Style.getItemAt(Eqp_Style.getSelectedIndex());
				String sdate=(String) starty.getItemAt(starty.getSelectedIndex())+"-"+(String) startm.getItemAt(startm.getSelectedIndex())+"-"+(String) startd.getItemAt(startd.getSelectedIndex());
				String edate=(String) endy.getItemAt(endy.getSelectedIndex())+"-"+(String) endm.getItemAt(endm.getSelectedIndex())+"-"+(String) endd.getItemAt(endd.getSelectedIndex());
				list = sql.findForList("select * from tb_Out_View where "
						+ (Style.isSelected() ? "Eqp_Style='" + style +"'" : "")
						+ (Name.isSelected() ? (Style.isSelected() ? " and Eqp_Name= '" + Eqp_Name.getText().trim() +"'": "Eqp_Name= '" + Eqp_Name.getText().trim() +"'") : "")
						+ (Time.isSelected() ? ( (Name.isSelected() || Style.isSelected())? " and Out_time>'" + sdate+ "' and Out_time<='" + edate+" 23:59:59'" : " Out_time>'" + sdate+ "' and Out_time<='" + edate+" 23:59:59'"):""));
						Iterator iterator = list.iterator();
				updateTable(iterator);
				//查询,经典部分,其中sql语句真的花了我很长时间,其中要盘点JCheckBox的选择而且还有一个and的处理
			}
			});
		
	}

	
	

	public int Leap(int year){       
		if(year%4==0&&year%100!=0||year%400==0)return 1;
        else return 0;    //闰年的判断   
	}
	public int getmonthnum(int year,int month){
		int num=0;
		switch(month){
        case 1:
        case 3:
        case 5:
        case 7:
        case 8:
        case 10:
        case 12:
        	num=31;
        break;
        case 4:
        case 6:
        case 9:
        case 11:
        	num=30;
        break;
        case 2:
        	num=28+Leap(year);
        break;
		}
        return num;
		//月对应日
	}
	// 设置组件位置并添加到容器中
	private void setupComponet(JComponent component, int gridx, int gridy,
			int gridwidth, int ipadx, boolean fill) {
		final GridBagConstraints gridBagConstrains = new GridBagConstraints();
		gridBagConstrains.gridx = gridx;
		gridBagConstrains.gridy = gridy;
		if (gridwidth > 1)
			gridBagConstrains.gridwidth = gridwidth;
		if (ipadx > 0)
			gridBagConstrains.ipadx = ipadx;
		gridBagConstrains.insets = new Insets(5, 1, 3, 1);
		if (fill)
			gridBagConstrains.fill = GridBagConstraints.HORIZONTAL;
		getContentPane().add(component, gridBagConstrains);
	}
	
	// 初始化表格
	private void initTable() {
		String[] columnNames = {"出库编号","设备名称","出库数量","设备类型","设备参数","出库时间", "操作员", "经手人", "备注"};
		tableModel = (DefaultTableModel) table.getModel();	
		tableModel.setColumnIdentifiers(columnNames);
		final JTextField pdField = new JTextField(0);
		pdField.setEditable(false);		
		JTextField readOnlyField = new JTextField(0);
		readOnlyField.setEditable(false);
		DefaultCellEditor readOnlyEditor = new DefaultCellEditor(readOnlyField);
		TableColumn Column =null;			
		for(int i=0;i<tableModel.getColumnCount();i++)
		{
		Column =table.getColumnModel().getColumn(i);
		Column.setCellEditor(readOnlyEditor);//设置表格单元为只读格式
		}
		
		
	}
	
	
	
	
	private void updateTable(Iterator iterator) {		// 更新表格数据
		int rowCount=tableModel.getRowCount();
		for(int i=0;i<rowCount;i++) {
			tableModel.removeRow(0);	
		}
		while(iterator.hasNext()) {
			Vector vector=new Vector();
			List view=(List) iterator.next();
			vector.addAll(view);
			tableModel.addRow(vector);
		}
	}
}

⌨️ 快捷键说明

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