java设计功能怎么实现代码_利用java编写代码实现如下功能,需要全部代码

利用java编写代码实现如下功能,需要全部代码

mip版  关注:277  答案:3  悬赏:0

解决时间 2021-01-17 22:54

1fe20469fd355c634cc4f5f71e3c57d0.png

已解决

2021-01-17 11:48

1、编写登录验证程序,设计界面如图1所示。

图1 登录界面

要求:

1) 在用户名要求是英文;密码为数字;

2) 程序运行中,窗体在屏幕上居中;

3) 程序设计采用分层设计思想;

程序运行情况:

(注:假设用户名和密码是admin 和12345才能登录成功)

1) 输入用户名admin和密码12345后,单击【确定】按钮,弹出登录成功对话框,如图2所示;

图2 登录成功对话框

2) 当输入用户名为cvit1111后,当此文本框失去焦点后,将弹出对话框如图3所示;

图3 数据验证错误对话框

3) 当输入密码为a121212后,当此文本框失去焦点后,将弹出对话框如图4所示;

图4 数据验证错误对话框

4) 当输入为用户名cvit,密码为12345后,单击【确定】按钮,弹出登录失败对话框,如图5所示。

图5 登录失败对话框

提示信息:

//设置窗体居中技术

importjava.awt.Dimension;

importjava.awt.Toolkit;

…..…..

//获得屏幕的宽和高

DimensionscreenSize = Toolkit.getDefaultToolkit().getScreenSize();

//获得当前窗体的宽和高

DimensionframeSize = this.getSize();

这两个对象的height和width属性表示高和宽。

最佳答案

6439d246cd2aede26c93135ac9e7a32c.png

2021-01-17 11:55

很简单的应用,为了节省字数,代码注释我就不加了

首先是显示层,LoinWindow:636f7079e799bee5baa631333335343366

import java.awt.FlowLayout;

import java.awt.GridBagConstraints;

import java.awt.GridBagLayout;

import java.awt.GridLayout;

import java.awt.event.ActionEvent;

import java.awt.event.ActionListener;

import java.awt.event.FocusEvent;

import java.awt.event.FocusListener;

import javax.swing.JButton;

import javax.swing.JFrame;

import javax.swing.JLabel;

import javax.swing.JOptionPane;

import javax.swing.JPanel;

import javax.swing.JTextField;

import javax.swing.border.EmptyBorder;

public class LoinWindow extends JFrame implements ActionListener, FocusListener {

private JPanel mainPanel, namePanel, btnPanel;

private JTextField tfName, tfPsd;

private JButton btnLogin, btnCancel;

private static final int WIDTH = 300;

private static final int HEIGHT = 200;

private LoginService service = new LoginService();

public LoinWindow() {

super("登录窗体");

}

public void launch() {

setSize(WIDTH, HEIGHT);

setVisible(true);

setDefaultCloseOperation(EXIT_ON_CLOSE);

GridLayout mainLayout = new GridLayout(2, 1);

mainLayout.setVgap(10);

mainPanel = new JPanel(mainLayout);

GridBagLayout nameLayout = new GridBagLayout();

namePanel = new JPanel(nameLayout);

namePanel.setBorder(new EmptyBorder(10, 10, 10, 10));

JLabel nameLabel = new JLabel("姓名:");

tfName = new JTextField();

JLabel psdLabel = new JLabel("密码:");

tfPsd = new JTextField();

JLabel blank = new JLabel(" ");

namePanel.add(nameLabel);

namePanel.add(tfName);

namePanel.add(blank);

namePanel.add(psdLabel);

namePanel.add(tfPsd);

GridBagConstraints s = new GridBagConstraints();

s.fill = GridBagConstraints.BOTH;

s.gridwidth = 1;

s.weightx = 0;

s.weighty = 0;

nameLayout.setConstraints(nameLabel, s);

s.gridwidth = 0;

s.weightx = 1;

s.weighty = 0;

nameLayout.setConstraints(tfName, s);

s.gridwidth = 0;

s.weightx = 4;

s.weighty = 0;

nameLayout.setConstraints(blank, s);

s.gridwidth = 1;

s.weightx = 0;

s.weighty = 0;

nameLayout.setConstraints(psdLabel, s);

s.gridwidth = 3;

s.weightx = 1;

s.weighty = 0;

nameLayout.setConstraints(tfPsd, s);

FlowLayout btnLayout = new FlowLayout();

btnLayout.setAlignment(FlowLayout.CENTER);

btnPanel = new JPanel(btnLayout);

btnLogin = new JButton("确定");

btnCancel = new JButton("取消");

btnPanel.add(btnLogin);

btnPanel.add(btnCancel);

btnCancel.addActionListener(this);

btnLogin.addActionListener(this);

mainPanel.add(namePanel);

mainPanel.add(btnPanel);

setContentPane(mainPanel);

tfName.addFocusListener(this);

tfPsd.addFocusListener(this);

pack();

setSize(WIDTH, HEIGHT);

setLocationRelativeTo(null);

}

@Override

public void actionPerformed(ActionEvent e) {

Object source = e.getSource();

if(source == btnCancel) {

System.exit(0);

} else if(source == btnLogin) {

String username = tfName.getText();

String password = tfPsd.getText();

boolean success = service.login(username, password);

if(success) {

warn("成功", "登录成功!");

} else {

warn("失败", "您输入的用户名或密码错误 !");

}

}

}

@Override

public void focusGained(FocusEvent arg0) {

}

@Override

public void focusLost(FocusEvent e) {

Object source = e.getSource();

if(source == tfName) {

String username = tfName.getText();

try {

service.matchUsername(username);

} catch (LoginException e1) {

warn("验证错误", e1.getMessage());

}

} else if(source == tfPsd) {

String password = tfPsd.getText();

try {

service.matchPassword(password);

} catch (LoginException e1) {

warn("验证错误", e1.getMessage());

}

}

}

private void warn(String title, String msg) {

JOptionPane.showMessageDialog(null, msg, title, JOptionPane.INFORMATION_MESSAGE);

}

public static void main(String[] args) {

new LoinWindow().launch();

}

}然后是模型层:LoginDao

public class LoginDao {

public boolean login(String username, String password) {

if(username.equals("admin") && password.equals("12345")) {

return true;

}

return false;

}

}LoginService

import java.util.regex.Pattern;

public class LoginService {

private static final Pattern LOGIN_PATTERN = Pattern.compile("[a-zA-Z]+");

private static final Pattern PASSWORD_PATTERN = Pattern.compile("[1-9]+");

private LoginDao dao = new LoginDao();

public boolean matchUsername(String username) throws LoginException {

if(null == username || username.isEmpty()) {

return false;

}

if(!LOGIN_PATTERN.matcher(username).matches()) {

throw new LoginException("您输入的用户名不合法,请输入英文!");

}

return true;

}

public boolean matchPassword(String password) throws LoginException {

if(null == password || password.isEmpty()) {

return false;

}

if(!PASSWORD_PATTERN.matcher(password).matches()) {

throw new LoginException("您输入的密码不合法,请输入数字!");

}

return true;

}

public boolean login(String username, String password) {

if(null == username || username.isEmpty()) {

return false;

}

if(null == password || password.isEmpty()) {

return false;

}

if(!dao.login(username, password)) {

return false;

}

return true;

}

}LoginException

public class LoginException extends Exception {

public LoginException(String arg0) {

super(arg0);

}

}不知道分层设计思想是不是我想的这样

全部回答

cf3ae1605e21f513431cb5d10b5bf064.png

1楼

2021-01-17 13:35

居中有个很简单的方法。

全部代码倒是不难,不过这里应该贴不了这么长的代码。

a0383bb0ee57bf559a1ef1165cb26d19.png

2楼

2021-01-17 12:26

http://wenku.baidu.com/link?url=oihgwy03dxwr9qoy8d_0snvxfy5t7uzcxxhwullktv2ktbzqfvijswo7xwvfws94z53vhmkfsv_jrpshqmqhl-9kpgkgghazmq92cgeb3xy

我要举报

如果感觉以上信息为低俗/不良/侵权的信息,可以点下面链接进行举报,我们会做出相应处理,感谢你的支持!

点此我要举报以上信息!

推荐资讯

大家都在看

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值