简单的签到任务项目(SigninDemo)

1.客户端项目GUI

GUI的发展历程:awt->Swing

2.简单的签到任务项目(SigninDemo)

用户:注册/登录

签到:签到/签到信息(用户名、时间、IP地址、备注)

2.1 业务功能分析
  1. 页面【Swing】
    • 登录界面
    • 注册页面
    • 签到页面
  2. 业务处理【JavaSE】
  3. 数据存储【集合】
2.2 项目创建

更改package结构:左侧Package项目栏右上角倒三角->Package Presentaction->Hierarchical

创建步骤:选择包名->右击->New->Other->Windowbuilder->Swing design->JFrame

有两种模式(模式切换:workspace左下角):

  • Source–源码–可以自己进行源码编写
  • Design–图形化设计界面
    • components—放的是整个页面中的元素的关系结构
    • properties—对当前选中的元素的设计
    • palette—所有页面元素【组件、菜单、布局等】
    • 右侧界面—设计区域【显示窗体】

设计页面的步骤:

​ ①创建窗体——JFrame

​ ②放置画布——JPanel

​ ③设置画布布局——Layout

​ absolute布局–自由发挥

​ ④放置页面元素

​ JLabel–文本框

​ JTextField–文本输入框

​ JButton–按钮

​ JMenuBar–导航栏

​ JMenu–导航栏选项

​ JMenuItem–导航栏子选项

​ JToolBar–工具栏

添加事件:右击->Add event handler->action

2.2.1 登录界面(LoginView)
登录事件:
button.addActionListener(new ActionListener() {
	public void actionPerformed(ActionEvent e) {
		//测试:输出语句
		//System.out.println("不要点我!");
		loginFun(e);
	}
});

/**
 * 登录操作的业务办法
 * @param e
 */
protected void loginFun(ActionEvent e) {
	//弹出框
	JOptionPane.showConfirmDialog(this, "您确认需要提交登录?", "提示", JOptionPane.OK_CANCEL_OPTION);	
    //获取信息
	String uname = textField.getText();
	String password = textField_1.getText();
	//输出
	//System.out.println("用户名:"+uname);
	//System.out.println("密码:"+password);
    
    //判断
	if("admin".equals(uname)&&"123456".equals(password)){
		//主页面显示
		MainView mainView = new MainView();
		mainView.setVisible(true);
		//登录页面关闭
		this.setVisible(false);
        //弹出框
		JOptionPane.showConfirmDialog(this, "您确认需要提交登录?", "提示", JOptionPane.OK_CANCEL_OPTION);	
	}
}
退出事件:
btnNewButton.addActionListener(new ActionListener() {
	public void actionPerformed(ActionEvent e) {
		//调用退出方法
		exitFun(e);
	}
});
/**
 * 退出
 * @param e
 */
protected void exitFun(ActionEvent e) {
	//弹出框
	int i=JOptionPane.showConfirmDialog(this, "您确认退出系统吗?","提示",JOptionPane.OK_CANCEL_OPTION);
	System.out.println("得到数据:"+i);
	if (i==0) {
		//退出
		System.exit(0);
	}
}
2.2.2 主页面(MainView)

添加页面信息:[JLabel]用户、时间、IP、备注/+[JTextField]

添加签到按钮:[JButton]签到

设置时间和IP不可编辑,从系统中获取。(将editable属性改为false)

编写获取时间方法:
//显示当前日期
textField_1.setText(new SimpleDateFormat("yyyy-MM-dd E hh:mm:ss").format(new Date()));
编写获取IP地址方法:
//放IP地址
try {
	textField_2.setText(InetAddress.getLocalHost().getHostAddress());
} catch (UnknownHostException e) {
	e.printStackTrace();
}
存储数据

在签到页面旁边添加一个JPanel

​ 页面上方添加搜索框(JTextField) +查询按钮(JButton)

​ 下方添加JScrollPane,以及在JScrollPane插入JTable

当点击签到按钮时,数据添加进表格。

(1)获取表格数据模型

DefaultTableModel tmodel = (DefaultTableModel)table.getModel();

(2)设置标题

tmodel.setColumnIdentifiers(new Object[]{"姓名","时间","IP地址","备注"});

(3)设置签到按钮方法(signInFun())

/**
 * 签到按钮的方法
 * @param e
 */
protected void signInFun(ActionEvent e) {
	//获取信息
	String uname=textField.getText();
	String utime=textField_1.getText();
	String uip=textField_2.getText();
	String uremark=textField_3.getText();
		
	//获取表格模型
	DefaultTableModel ttmodel = (DefaultTableModel)table.getModel();
	//添加数据
	ttmodel.addRow(new Object[]{uname,utime,uip,uremark});	
}

(4)设置数据显示页面开关

业务逻辑:添加“查看签到信息”按钮,当点击该按钮时,会在右侧展开表格;再次点击时关闭。

注意:这里需要注意窗体大小,当未点击“查看签到信息”按钮时(key为true时),只显示签到主页面,即只显示签到页面大小;打开后(key为false时),显示整个页面大小,关闭后缩小为之前大小。

(5)添加一个布尔型变量,进行判断

private boolean key=true;
//用于显示签到信息--开关算法
protected void showSignMsg(ActionEvent e) {
	//判断
	if (key) {
		//显示
		this.setBounds(100, 100, 850, 610);
		//修改开关状态
		key=false;
	}else {
		this.setBounds(100, 100, 440, 610);
		//修改开关状态
		key=true;
	}
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值