You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

MVC项目登录成功后JInternalFrame无法弹出问题求助

问题描述

我正在开发一个MVC项目,已创建登录表单,登录成功后本该显示JInternalFrame,但该窗口始终无法弹出。数据库连接及登录验证均正常,仅窗口无法显示。相关登录按钮事件处理代码如下:

private void btnLoginActionPerformed(java.awt.event.ActionEvent evt) {                                         
    UserDAO userDAO = new UserDAO();
    User u = new User();
    
    if (!txtUsername.getText().equals("") || txtPassword.getText().equals("")) {
        u.setUsername(txtUsername.getText());
        u.setPassword(txtPassword.getText());
        u.setUserType(cbType.getSelectedItem().toString());
        
        if (userDAO.login(u)) {
        
            String userID = String.valueOf(u.getUserId());
            String username = u.getUsername();
            String userType = u.getUserType();
            
            MainPage mainPage = new MainPage(userID, username, userType);
            mainPage.setVisible(true);
            
        } else {
        
            JOptionPane.showMessageDialog(null, "The username or password are incorrect");
        }
    } else {
        JOptionPane.showMessageDialog(null, "The spaces must be filled");
    }
}                                       
解决方向
  • JInternalFrame必须依附JDesktopPane:JInternalFrame无法单独显示,必须添加到JDesktopPane容器中。检查MainPage是否关联了桌面面板,或者创建实例后手动添加到主窗口的JDesktopPane:
    // 假设主窗口存在JDesktopPane实例desktopPane
    desktopPane.add(mainPage);
    mainPage.setVisible(true);
    // 可补充设置窗口基础属性
    mainPage.setClosable(true);
    mainPage.setMaximizable(true);
    
  • 检查MainPage构造逻辑:确认MainPage构造方法中是否初始化了窗口尺寸、布局等核心属性,避免因尺寸为0导致窗口不可见:
    public MainPage(String userID, String username, String userType) {
        super("主页面");
        setSize(800, 600);
        setLayout(new BorderLayout());
        // 其他初始化代码
    }
    
  • 验证父窗口状态:确保承载JDesktopPane的主窗口已调用setVisible(true),且MainPage未被其他组件遮挡。
  • 修正登录验证逻辑:当前输入判断条件!txtUsername.getText().equals("") || txtPassword.getText().equals("")逻辑错误,应改为!txtUsername.getText().isEmpty() && !txtPassword.getText().isEmpty(),确保用户名和密码同时非空才进入登录流程。

内容的提问来源于stack exchange,提问作者Joshua Ulloa Mora

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.05 10:25:21