题目:输入用户姓名和密码,当姓名和密码正确时(姓名: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 ); // 设置窗口是否可见 } }

评论