题目:输入用户姓名和密码,当姓名和密码正确时(姓名:java, 密码:123),则显示登陆成功,错误时,则提示错误,并清空姓名和密码,且姓名文本框获得焦点。 题目大概是这样。 以下是我的代码实现:
运行效果如下:
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
/* 定义用户类 */
class User
{
private String userName; // 用户姓名
private String password; // 密码
public void setUserName( String n ) // 设置用户姓名
{
userName = n;
}
public void setPassword( String s ) // 设置密码
{
password = s;
}
public String getUserName( ) // 获得用户姓名
{
return userName;
}
public String getPassword( ) // 获得密码
{
return password;
}
public boolean verify( ) // 检测用户输入的姓名和密码是否正确
{
/* 正确返回true, 错误返回false */
if ( getUserName().equals("java") && getPassword().equals("123") )
return true;
else
return false;
}
}
public class Login extends JFrame implements ActionListener
{
JLabel lblUserName;
JLabel lblPassword;
JTextField tfUserName;
JPasswordField pfPassword;
JButton btnLogin;
User people; // 定义用户对象
public Login( String title )
{
super( title );
lblUserName = new JLabel( "用户名:" );
lblPassword = new JLabel( "密码:" );
tfUserName = new JTextField( 15 );
pfPassword = new JPasswordField( );
btnLogin = new JButton( "登陆" ); // 初始化登陆按钮
people = new User( ); // 初始化用户对象
btnLogin.addActionListener(this); // 注册动作事件
/* 定义面版 */
JPanel p1 = new JPanel( );
JPanel p2 = new JPanel( );
/* 设置面版布局 */
p1.setLayout( new GridLayout(2,2) );
p2.setLayout( new FlowLayout( ) );
/* 面版添加控件 */
p1.add( lblUserName );
p1.add( tfUserName );
p1.add( lblPassword );
p1.add( pfPassword );
p2.add( btnLogin );
/* 定义容器和使容器添加面版 */
Container con = this.getContentPane();
con.add( p1, BorderLayout.NORTH );
con.add( p2, BorderLayout.SOUTH );
}
/* 定义动作事件 */
public void actionPerformed( ActionEvent e )
{
/* 设置用户姓名和密码 */
people.setUserName( tfUserName.getText().trim() );
people.setPassword( pfPassword.getText().trim() );
/* 检测输入的用户的姓名和密码是否正确 */
if ( people.verify() == true ) // 正确
{
/* 输出正确提示 */
JOptionPane.showMessageDialog( null, "登陆成功!", "提示信息",
JOptionPane.CLOSED_OPTION );
}
else // 错误
{
/* 输出错误提示 */
JOptionPane.showMessageDialog( null, "请输入正确的登陆信息", "提示信息",
JOptionPane.CLOSED_OPTION );
tfUserName.setText( "" ); // 清空用户姓名文本框
pfPassword.setText( "" ); // 清空密码文本框
tfUserName.requestDefaultFocus(); // 用户姓名文本框获得焦点
}
}
public static void main( String agrs[] )
{
Login log = new Login( "登陆" ); // 定义登陆类
log.setSize( 200, 110 ); // 设置窗口大小
log.setLocation( 200,200 ); // 设置显示位置
log.setVisible( true ); // 设置窗口是否可见
}
}
评论