通过JFrame构建登录界面

通过JFrame构建登录界面

import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JPasswordField;
import javax.swing.JTextField;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

public class Test {

    public static void main(String[] args) {
        // 创建 JFrame 实例
        JFrame frame = new JFrame("Login Example");
        // Setting the width and height of frame
        frame.setSize(350, 200);
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        //设置界面为可关闭状态
        JPanel panel = new JPanel();
        // 添加面板
        frame.add(panel);
        
        doIt(panel);

        // 设置界面可见
        frame.setVisible(true);
    }

    private static void doIt(JPanel panel) {

        panel.setLayout(null);

        // 创建 JLabel
        JLabel userLabel = new JLabel("User:");
        /* 这个方法定义了组件的位置。
         * setBounds(x, y, width, height)
         * x 和 y 指定左上角的新位置,由 width 和 height 指定新的大小。
         */
        userLabel.setBounds(10,20,80,25);
        panel.add(userLabel);

        /*
         * 创建文本域用于用户输入
         */
        JTextField userText = new JTextField(20);
        userText.setBounds(100,20,165,25);
        panel.add(userText);

        // 输入密码的文本域(里面内容将以“*”号代替)
        JLabel passwordLabel = new JLabel("Password:");
        passwordLabel.setBounds(10,50,80,25);
        panel.add(passwordLabel);

        JPasswordField passwordText = new JPasswordField(20);
        passwordText.setBounds(100,50,165,25);
        panel.add(passwordText);

        // 创建登录按钮
        JButton loginButton = new JButton("login");
        loginButton.setBounds(10, 80, 80, 25);
        loginButton.addActionListener(new ActionListener() {
            @Override
            public void actionPerformed(ActionEvent e) {
                String text=userText.getText();
                String password=passwordText.getText();
                System.out.println("账号:"+text);
                System.out.println("密码:"+password);
            }
        });
        //添加事件监听
        panel.add(loginButton);
    }
}

运行结果后,将通过事件监听器,将输入的账号密码打印到控制台界面中。
未来可以与数据库联用,将数据存储到数据库当中。

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
登陆界面的推箱子游戏是一个经典的解谜游戏,通常在Java中会用Swing或JavaFX这样的图形用户界面库来构建。以下是制作这样一个游戏的基本步骤和关键组件: 1. **项目初始化**: 创建一个新的Java项目,并导入所需的GUI库,如`javax.swing.*`或`javafx.scene.*`。 2. **登陆界面设计**: 设计一个简单的登陆界面,包含用户名和密码输入框,登录按钮以及可能的登录验证逻辑。你可以使用JTextField, JPasswordField, JButton等组件。 ```java import javax.swing.*; public class LoginFrame extends JFrame { private JTextField usernameField; private JPasswordField passwordField; public LoginFrame() { // 构造登录窗口组件 } // 方法添加组件、设置布局、事件监听等 } ``` 3. **游戏界面设计**: 创建一个推箱子游戏主界面,包括地图、可推动的箱子、目标位置等。可以使用二维数组表示地图,监听鼠标事件来移动箱子。 4. **角色管理**: 使用类来表示玩家或角色,包含身份信息和操作方法(例如移动、打开门等)。 5. **登录功能实现**: 在游戏主类中,创建一个实例化登录界面的方法,在用户登录成功后切换到游戏界面。 ```java public class GameManager { private static final String[] validUsers = {"admin", "user"}; public static void main(String[] args) { LoginFrame loginFrame = new LoginFrame(); if (loginFrame.loginSuccess()) { Game game = new Game(); game.start(); } } } ``` 6. **多线程处理**: 如果希望保持UI响应性,可以考虑使用SwingWorker或者JavaFX的后台任务处理游戏逻辑。 7. **保存/加载功能**: 增加保存和加载游戏状态的功能,以便用户可以在退出游戏后继续从上次的地方开始。 相关问题: 1. 如何在Java中处理用户界面的交互? 2. 如何在Java中实现游戏状态的持久化存储? 3. 在Java Swing中如何使用线程来更新UI?

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

nightelves11

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值