(程序仅供参考。运行环境:eclipse,jdk8)
一、编写一个GUI程序,窗口标题为“登录”的,能实现用户名和密码的输入。
(1)单击“登录”按钮后验证输入的用户名和密码是否正确,并在控制台输出相关信息:“用户名和密码正确,登录成功”、“用户名或密码错误,登录失败”;
(2)假定已有用户信息如表5所示。用户名不区分大小写。
表5 用户数据
用户名 | 密码 | 用户名 | 密码 |
---|---|---|---|
tim | 123 | Mary | 121 |
bill | 321 | carl | 110 |
import javafx.application.Application;
import javafx.geometry.*;
import javafx.scene.*;
import javafx.scene.control.*;
import javafx.scene.layout.GridPane;
import javafx.stage.Stage;
public class Main extends Application {
Label lab1 = new Label("账号");
Label lab2 = new Label("密码");
TextField name = new TextField();
PasswordField password = new PasswordField();
Button bt = new Button("登录");
Button clear = new Button("重置");
@Override
public void start(Stage primaryStage) throws Exception {
/* 网格布局 */
GridPane gr = new GridPane();
gr.add(lab1, 0, 0);
gr.add(name, 1, 0);
gr.add(lab2, 0, 1);
gr.add(password, 1, 1);
gr.add(clear, 0, 2);
gr.add(bt, 1, 2);
gr.setAlignment(Pos.CENTER);// 全部居中
gr.setHgap(5);// 水平间距
gr.setVgap(15);// 垂直间距
GridPane.setMargin(bt, new Insets(0, 0, 0, 120));// 设置登录左边外边距
Scene s = new Scene(gr);
primaryStage.setScene(s);
primaryStage.setTitle("登录");// 设置窗口标题
primaryStage.setWidth(500);
primaryStage.setHeight(300);
primaryStage.setResizable(false);// 设置窗口大小固定
primaryStage.show();
clear.setOnAction(e -> {// 重置按钮点击事件
name.setText("");
password.setText("");
});
bt.setOnAction(e -> {// 登录按钮点击事件
String n = name.getText();
String lower = n.toLowerCase();// 将输入的用户名全部转换为小写
String p = password.getText();
name.setText(n);
password.setText(p);
/* 与已存在的用户信息(用户名全部存为小写字母)进行比较,完全符合则登录成功(这里用的是if-else语句进行比较) */
if ((lower.equals("tim") && p.equals("123")))
System.out.println("用户名和密码正确,登录成功");
else if ((lower.equals("bill") && p.equals("321"