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

📄 welcomegui.java

📁 适合学生课程设计使用,这是我自己编写的一个系统.
💻 JAVA
字号:
package view;

import java.util.List;
import java.util.Vector;
import java.util.Iterator;
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import javax.swing.table.*;
import javax.swing.event.*;

import persistence.*;

import java.net.*;
import bean.*;
import tools.help;

/**
 * @author   Administrator
 */
public class WelcomeGUI extends JFrame implements ActionListener {
	private JPanel panelLogin;				//定义面板,存放用于登录的组件
	private JLabel labelLogin;				//登录标识
	private JTextField tfId;				//用户ID输入框
	private JPasswordField pfPwd;			//用户密码输入框
	private JButton buttonLogin;			//登录确认按钮
	
	private JPanel panelSearch;				//定义面板,存放用于模糊搜索的组件
	private JTextField tfSearch;			//输入模糊搜索条件的输入框
	private JButton buttonSearch;			//搜索确认按钮
	
	private JScrollPane spTable;			//定义一个又滚动条的面板,存放表组件
	private String[] field = {"序号","ISBN","书名","作者","出版日期","出版社","类型"};		//定义表的显示字段名
	private Object[][] ob = null;			//初始化表记录为空
	private static DefaultTableModel mod;	//使用默认的表模式
	private JTable table;					//定义一个表组件
	
	private GridBagConstraints cons;		//布局格式
	private bookInfoDAOImp bidaoimp;
	
	public WelcomeGUI() {					//初始化
		setLogin();							//调用登录面板初始化方法
		setSearch();						//调用搜索面板初始化方法
		setTable();							//调用表面板初始化方法
		setFrame();							//调用主面板初始化方法
	}
	
	public void setLogin() {					//登录面板初始化方法
		panelLogin = new JPanel();
		FlowLayout fl = new FlowLayout();		//定义布局
		fl.setAlignment(FlowLayout.LEFT);		//设置布局为左对齐方式
		panelLogin.setLayout(fl);
		panelLogin.setBackground(Color.GREEN);	//设置面板背景色为绿色
		labelLogin = new JLabel("登录:");		//创建一个名位‘登录:’的标签
		tfId = new JTextField(10);				//设置用户ID输入框的长度为10字符
		tfId.setToolTipText("请输入ID");			//鼠标悬停时,出现的提示信息
		tfId.addActionListener(this);			//为输入框添加事件
		pfPwd = new JPasswordField(10);			//设置密码输入框的长度为10字符
		pfPwd.setToolTipText("请输入PASSWORD");	//鼠标悬停时,出现的提示信息
		pfPwd.addActionListener(this);			//为密码框添加事件
		buttonLogin = new JButton("登录");		//创建一个名位‘登录’的按钮
		buttonLogin.addActionListener(this);	//添加事件
		panelLogin.add(labelLogin);				//将标签加入到登录面板中
		panelLogin.add(tfId);					//将用户ID输入框加入到登录面板中
		panelLogin.add(pfPwd);					//将密码输入框加入到登录面板中
		panelLogin.add(buttonLogin);			//将登录按钮加入到登录面板中
	}
	
	public void setSearch() {					//搜索面板初始化方法
		panelSearch = new JPanel();
		FlowLayout fl = new FlowLayout();
		fl.setAlignment(FlowLayout.CENTER);
		panelSearch.setLayout(fl);
		panelSearch.setBackground(Color.GREEN);
		tfSearch = new JTextField(20);
		tfSearch.setToolTipText("请输入有关书的信息,按\'查找\'进行模糊查找");
		tfSearch.requestFocus(true);
		tfSearch.addActionListener(this);
		buttonSearch = new JButton("查找");
		buttonSearch.addActionListener(this);
		panelSearch.add(tfSearch);
		panelSearch.add(buttonSearch);
	}
	
	public void setTable() {						//表面板初始化方法
		mod = new DefaultTableModel(ob,field);
		table = new JTable(mod);
		table.setPreferredScrollableViewportSize(new Dimension(400,350));
		table.setEnabled(false);
		spTable = new JScrollPane(table);
	}
	
	public void setFrame() {						//主面板初始化方法
		this.setTitle("欢迎界面");					//设置主面板的标题
		Container con = this.getContentPane();		//获得主面板的布局管理器
		GridBagLayout gridBag = new GridBagLayout();//定义布局为GridBagLayout
		con.setLayout(gridBag);						//设置主面板的布局
		cons = new GridBagConstraints(0,0,1,10,0,0,GridBagConstraints.EAST,GridBagConstraints.HORIZONTAL,new Insets(2,2,2,2),0,0);
		gridBag.setConstraints(panelLogin,cons);	//设置登录面板的主面板中相应的位置
		
		cons = new GridBagConstraints(0,10,1,10,1,1,GridBagConstraints.CENTER,GridBagConstraints.BOTH,new Insets(2,2,2,2),0,0);
		gridBag.setConstraints(panelSearch,cons);	//设置搜索面板的主面板中相应的位置
		
		cons = new GridBagConstraints(0,20,10,10,1,1,GridBagConstraints.CENTER,GridBagConstraints.BOTH,new Insets(2,2,2,2),0,0);
		gridBag.setConstraints(spTable,cons);		//设置表面板的主面板中相应的位置
		
		con.add(panelLogin);						//将登录面板添加到主面板中
		con.add(panelSearch);						//将搜索面板添加到主面板中
		con.add(spTable);							//将表面板添加到主面板中
		
		this.setSize(800,600);						//设置主面板的初始大小
		Toolkit tk = Toolkit.getDefaultToolkit();
		Dimension ds = tk.getScreenSize();
		int screenWidth = ds.width;
		int screenHeight = ds.height;
		ds = this.getSize();
		int frameWidth = ds.width;
		int frameHeight = ds.height;
		this.setLocation((screenWidth-frameWidth)/2,(screenHeight-frameHeight)/2);	//设置主面板启动时,在屏幕的位置
		/*try {
			URL url = new URL("/img/blackicon.jpg");
			Image img = tk.getImage(url);
			this.setIconImage(img);
		} catch(MalformedURLException e) {
			System.out.println("Error:" + e.toString());
		}
		*/
		this.setVisible(true);				//设置主面板启动时为可见
		this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
	}
	
	public void actionPerformed(ActionEvent e) {			//事件处理
		if(e.getSource() == tfId) {							//用户ID输入框相应事件
			pfPwd.requestFocus(true);						//密码输入框获得光标
		} else if(e.getSource() == pfPwd || e.getSource() == buttonLogin) {	//密码输入框相应事件或登录按钮相应事件
			if(!isEmpty(tfId.getText().trim(),String.valueOf(pfPwd.getPassword()))) {	//判断用户ID和密码是否为空
				if(DAOImp.isContantUserInfo(tfId.getText().trim(),String.valueOf(pfPwd.getPassword()))) {	//调用判断用户方法,是否输入的用ID和密码与数据库中的匹配
					new MainGUI(DAOImp.searchUserInfo(tfId.getText().trim()));		//进入的相应的主界面
					this.clear();							//调用清理方法,清理欢迎界面
				} else {									//不满足登录条件
					tfId.setText("Please Input again");		//用户ID输入框弹出提示信息
					pfPwd.setText("");						//清空密码输入框
					tfId.requestFocus();					//用户ID输入框获得光标
				}
			}
		} else if(e.getSource() == tfSearch || e.getSource() == buttonSearch) {	//搜索输入框相应事件或搜索按钮相应事件
			if(tfSearch.getText().trim().equals("")) {	//判断输入的条件不为空
				tfSearch.requestFocus(true);			//搜索输入框获得光标
			} else {									//输入条件不为空
				if(DAOImp.searchBookRows(tfSearch.getText().trim())) {	//调用判断方法,数据库中是否存在匹配的记录
					bidaoimp = new bookInfoDAOImp();
					setTableRows(bidaoimp.getBookRows(tfSearch.getText().trim()));
					//setTableRows(DAOImp.getBookRows(tfSearch.getText().trim()));	//调用搜索方法,取得数据库中匹配的记录集
				} else {								//数据库中没有匹配记录
					tfSearch.setText("Sorry,no rows searched");	//显示提示信息
					tfSearch.requestFocus(true);		//搜索输入框获得光标
				}
			}
		}
	}
	
	public boolean isEmpty(String id,String pwd) {			//方法,用于判断输入字符串是否为空
		boolean bool = true;
		if(help.isEmpty(tfId.getText().trim())) {
			tfId.requestFocus(true);
		} else if(help.isEmpty(String.valueOf(pfPwd.getPassword()))) {
			pfPwd.requestFocus(true);
		} else {
			bool = false;
		}
		return bool;
	}
	
	public void clear() {				//清理方法
		tfId.setText("");				//用户ID输入框清空
		tfId.requestFocus(true);		//用户ID输入框获得光标
		pfPwd.setText("");				//密码输入框清空
		tfSearch.setText("");			//搜索输入框清空
	}
	
	public void setTableRows(List list) {			//设置表记录的方法
		for(int i = 0;i < mod.getRowCount();i++) {	//移除表中原有的记录
			mod.removeRow(i);
		}
		Iterator iter = list.iterator();
		int i = 0;
		while(iter.hasNext()) {						//从List中取得字段,并组织成表Table能接受的格式
			Vector<String> vs = new Vector<String>();
			bookInfo bi = (bookInfo)iter.next();
			vs.add(String.valueOf(++i));
			vs.add(bi.getISBN());
			vs.add(bi.getName());
			vs.add(bi.getAuthor());
			vs.add(bi.getPublishTime());
			vs.add(bi.getPc().getName());
			vs.add(bi.getBt().getName());
			mod.addRow(vs);								//向表中添加新的记录
		}
		
	}
	
	public static void main(String[] args) {
		new WelcomeGUI();

	}

}

⌨️ 快捷键说明

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