登录 之 GUI层

接上文:

在上一篇说明中,做了一次形式上的开发需求分析;

本篇及后续篇章将把实现部分展现,上篇的最后部分展现的是与用户交互的GUI,本篇以此开始。

正文:

一个程序的好坏在不同的角色的人心中评判标准有所区别,但既然是与用户交互的,那么就以用户角色审视实现。

作为一个自然人,用户的角色天然就具备,因此在我看来,页面简单,整洁,布局合理是基本要求。

 

package com.net.ui;

import java.awt.Color;
import java.awt.Dimension;

import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JPasswordField;
import javax.swing.JTextField;

import com.net.convert.MakeCertPic;

public class LandWindow {
	private JTextField userName;
	private JButton jb_submit;
	private JButton jb_cancle;
	private JButton jb_register;
	private JPasswordField passwd;
	private JLabel hintStr;
	private JLabel label_name_str;
	private JLabel label_pswd_str;
	
	private JTextField certText;
	private JLabel certPic;
	
	private MakeCertPic mcp = new MakeCertPic();
	
	private final int JTEXTWIDTH=100;
	private final int JHEIGHT=30;
	private final int JLABELWIDTH=100;
	private final int JBUTTONWIDTH=90;
	
	public LandWindow(){		
		JFrame jf = new JFrame();
		jf.setTitle("XXX 登陆系统");
		jf.setPreferredSize(new Dimension(350, 250));
		
		JPanel jp = new JPanel();
		jp.setPreferredSize(new Dimension(350, 250));
		jp.setBackground(Color.lightGray);
		
		jf.setContentPane(jp);

		JLabel label_name = new JLabel();
		label_name.setPreferredSize(new Dimension(JLABELWIDTH, JHEIGHT));
		label_name.setText("登录名:");
		userName = new JTextField();
		userName.setPreferredSize(new Dimension(JTEXTWIDTH, JHEIGHT));
		label_name_str = new JLabel();
		label_name_str.setPreferredSize(new Dimension(JLABELWIDTH, JHEIGHT));
		label_name_str.setText(null);
		label_name_str.setForeground(Color.RED);
		
		jp.add(label_name);
		jp.add(userName);
		jp.add(label_name_str);
		
		JLabel label_pswd = new JLabel();
		label_pswd.setPreferredSize(new Dimension(JLABELWIDTH, JHEIGHT));
		label_pswd.setText("密    码:");
		passwd = new JPasswordField();
		passwd.setPreferredSize(new Dimension(JTEXTWIDTH, JHEIGHT));
		label_pswd_str = new JLabel();
		label_pswd_str.setPreferredSize(new Dimension(JLABELWIDTH, JHEIGHT));
		label_pswd_str.setText(null);
		label_pswd_str.setForeground(Color.RED);

		jp.add(label_pswd);
		jp.add(passwd);
		jp.add(label_pswd_str);
		
		JLabel labelPicTip = new JLabel();
		labelPicTip.setPreferredSize(new Dimension(JLABELWIDTH, JHEIGHT));
		labelPicTip.setText("校验码:");
		certText = new JTextField();
		certText.setPreferredSize(new Dimension(JTEXTWIDTH, JHEIGHT));
		certPic = new JLabel();
		passwd.setPreferredSize(new Dimension(JLABELWIDTH, JHEIGHT));
		
		jp.add(labelPicTip);
		jp.add(certText);
		jp.add(certPic);
		
		jb_submit = new JButton();
		jb_submit.setPreferredSize(new Dimension(JBUTTONWIDTH, JHEIGHT));
		jb_submit.setText("登 录");
		
		jb_cancle = new JButton();
		jb_cancle.setPreferredSize(new Dimension(JBUTTONWIDTH, JHEIGHT));
		jb_cancle.setText("重 置");
		
		jb_register = new JButton();
		jb_register.setPreferredSize(new Dimension(JBUTTONWIDTH, JHEIGHT));
		jb_register.setText("注册");
		
		hintStr = new JLabel();
		hintStr.setPreferredSize(new Dimension(300, JHEIGHT));
		hintStr.setText(null);
		hintStr.setForeground(Color.RED);
		
		jp.add(jb_submit);
		jp.add(jb_cancle);
		jp.add(jb_register);
		jp.add(hintStr);
		
		jf.pack();
		jf.setVisible(true);
		jf.setLocation(450, 300);
		jf.setResizable(false);
		jf.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
	}
	
	public JButton getSubmitButton(){
		return this.jb_submit;
	}
	
	public JButton getRegisterButton(){
		return this.jb_register;
	}
	
	public JButton getCancleButton(){
		return this.jb_cancle;
	}
	
	public JTextField getUserNameField(){
		return this.userName;
	}
	
	public JPasswordField getPasswdField(){
		return this.passwd;
	}
	
	public JLabel getStatLabel(){
		return this.hintStr;
	}
	
	public JLabel getUserNameLabel(){
		return this.label_name_str;
	}
	
	public JLabel getPasswdLabel(){
		return this.label_pswd_str;
	}
	
	public JTextField getCertTextField(){
		return this.certText;
	}
	
	public JLabel getCertPicLabel(){
		return this.certPic;
	}
	
	public String getCertPicStrValue(){
		return this.mcp.getCertPicStr();
	}
	
	public void refreshCertPicLabel(){
		this.certPic.setIcon(this.mcp.getCertPic());
	}
}


 

以上代码运行的结果与实际的贴图存在部分出入,因为缺少验证码的自动生成,但是基本结构就是这样,敬请期待验证码的部分。

未完待续。。。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值