帮我实现如下功能,并且写出详细注释 java制作登陆器,要求使用图形化界面,可以输入账号密码,初始测试账户为“admin”密码为“123” 点击登录按钮时,判断用户名或密码是否正确,如果正确打开一个新的窗口并且关闭当前窗口 用户名密码正确打开新的窗口中内容如下 包含四个按钮,他们的名字分别是 1.运行服务器 2.运行测试账户A 3.运行测试账户B 4.关闭 若点击按钮运行服务器,使用相对路径寻找运行同目录下的server.bat并保持窗体存在 若点击按钮运行测试账户A,使用相对路径寻找运行同目录下的client1.bat并保持窗体存在 若点击按钮运行测试账户B,使用相对路径寻找运行同目录下的client1.bat并保持窗体存在 点击关闭按钮执行关闭当前窗口的操作
时间: 2023-06-12 17:04:58 浏览: 145
基于Java编写实现记事本的全部功能,使用了JFrame,图形界面显示,下载下来就可以使用,注释完整,一看就会
以下是实现该功能的Java代码和注释:
```java
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
public class LoginFrame extends JFrame implements ActionListener {
// 定义界面上的组件
private JLabel userLabel, passLabel;
private JTextField userText;
private JPasswordField passText;
private JButton loginButton;
public LoginFrame() {
// 设置界面标题
setTitle("登录");
// 设置界面大小
setSize(300, 200);
// 设置界面布局为网格布局
setLayout(new GridLayout(3, 2));
// 创建用户名标签
userLabel = new JLabel("用户名:");
// 创建密码标签
passLabel = new JLabel("密码:");
// 创建用户名文本框
userText = new JTextField();
// 创建密码文本框
passText = new JPasswordField();
// 创建登录按钮
loginButton = new JButton("登录");
// 给登录按钮添加点击事件的监听器
loginButton.addActionListener(this);
// 添加组件到界面上
add(userLabel);
add(userText);
add(passLabel);
add(passText);
add(loginButton);
// 设置界面可见性为真
setVisible(true);
}
// 处理登录按钮的点击事件
public void actionPerformed(ActionEvent e) {
// 获取用户名和密码
String username = userText.getText();
String password = new String(passText.getPassword());
// 判断用户名和密码是否正确
if (username.equals("admin") && password.equals("123")) {
// 登录成功,打开新的窗口并关闭当前窗口
dispose();
new MainFrame();
} else {
// 登录失败,弹出提示框
JOptionPane.showMessageDialog(this, "用户名或密码错误!");
}
}
public static void main(String[] args) {
// 创建登录界面
new LoginFrame();
}
}
class MainFrame extends JFrame implements ActionListener {
// 定义界面上的组件
private JButton serverButton, clientAButton, clientBButton, closeButton;
public MainFrame() {
// 设置界面标题
setTitle("主界面");
// 设置界面大小
setSize(300, 200);
// 设置界面布局为网格布局
setLayout(new GridLayout(2, 2));
// 创建运行服务器按钮
serverButton = new JButton("运行服务器");
// 创建运行测试账户A按钮
clientAButton = new JButton("运行测试账户A");
// 创建运行测试账户B按钮
clientBButton = new JButton("运行测试账户B");
// 创建关闭按钮
closeButton = new JButton("关闭");
// 给按钮添加点击事件的监听器
serverButton.addActionListener(this);
clientAButton.addActionListener(this);
clientBButton.addActionListener(this);
closeButton.addActionListener(this);
// 添加组件到界面上
add(serverButton);
add(clientAButton);
add(clientBButton);
add(closeButton);
// 设置界面可见性为真
setVisible(true);
}
// 处理按钮的点击事件
public void actionPerformed(ActionEvent e) {
String command = e.getActionCommand();
String cmd = "";
if (command.equals("运行服务器")) {
// 运行服务器
cmd = "server.bat";
} else if (command.equals("运行测试账户A")) {
// 运行测试账户A
cmd = "client1.bat";
} else if (command.equals("运行测试账户B")) {
// 运行测试账户B
cmd = "client2.bat";
} else if (command.equals("关闭")) {
// 关闭窗口
dispose();
}
if (!cmd.equals("")) {
try {
// 获取当前目录
String currentPath = System.getProperty("user.dir");
// 构造完整的命令
String commandLine = currentPath + "\\" + cmd;
// 运行命令
Runtime.getRuntime().exec(commandLine);
// 保持窗口的存在
setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
} catch (Exception ex) {
ex.printStackTrace();
}
}
}
}
```
本程序使用了Java的Swing库实现图形化界面,其中LoginFrame类是登录界面的实现,MainFrame类是主界面的实现。在登录界面中,用户输入用户名和密码,点击登录按钮后会判断用户名和密码是否正确,如果正确则打开新的窗口并关闭当前窗口;否则弹出提示框。在主界面中,有四个按钮分别用于运行服务器、运行测试账户A、运行测试账户B和关闭窗口,点击按钮后会执行相应的操作。其中运行服务器、运行测试账户A和运行测试账户B按钮会使用相对路径寻找同目录下的.bat文件并运行,关闭窗口按钮则会执行关闭当前窗口的操作。
阅读全文