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

Java Swing登录跳转新窗口后校验按钮点击无响应问题求助

问题原因

你的代码存在3处核心错误,直接导致Check按钮点击无响应:

  1. 监听器绑定对象错误
    你定义Check按钮的变量名是Button2,但绑定时错误写为第一个窗口的登录按钮button,等于Check按钮没有绑定任何点击事件:
    // 你的错误写法
    button.addActionListener(new ActionListener() {
    // 正确应该绑定Check按钮对象
    Button2.addActionListener(new ActionListener() {
    
  2. 结果提示标签未初始化、未添加到面板
    你逻辑里调用success2.setText("yes")输出结果,但success2对象全程没有初始化,也没有添加到第二个窗口的Panel2中,就算事件触发也看不到提示。另外你代码最后给第二个窗口加的还是第一个窗口的success对象,属于对象误用。
  3. 窗口显示时机错误
    你创建frame2后先调用了setVisible(true),之后才添加组件,大概率会出现组件不渲染的问题,应该把setVisible(true)放到所有组件添加完成的最后一行。

修正后的核心代码段(第二个窗口部分)

if (user.equals("Gal") && password.equals("Skr")){
    // second frame
    JPanel Panel2 = new JPanel();
    JFrame frame2 = new JFrame();
    frame2.setSize(400,300);
    frame2.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    frame2.add(Panel2);
    
    Panel2.setLayout(null);
    
    label1 = new JLabel("Set word/number here:");
    label1.setBounds(10,20,200,25);
    Panel2.add(label1);
    
    WordNum1 = new JTextField();
    WordNum1.setBounds(100,50,165,25);
    Panel2.add(WordNum1);
    
    label2 = new JLabel("Set word/number here:");
    label2.setBounds(10,90,200,25);
    Panel2.add(label2);
    
    WordNum2 = new JTextField();
    WordNum2.setBounds(100,130,165,25);
    Panel2.add(WordNum2);
    
    JButton Button2 = new JButton("Check");
    Button2.setBounds(100,200,80,25);
    // 修正:给Check按钮绑定监听器
    Button2.addActionListener(new ActionListener() {
        @Override
        public void actionPerformed(ActionEvent e1) {
            String word = WordNum1.getText();
            String word2 = WordNum2.getText();
            
            if(word.equals(word2)){
                success2.setText("yes");
            }else{
                success2.setText("no");
            }
        }
    });
    Panel2.add(Button2);
    
    // 修正:初始化success2并添加到面板
    success2 = new JLabel("");
    success2.setBounds(80,230,300,25);
    Panel2.add(success2);
    
    // 修正:所有组件添加完成后再显示窗口
    frame2.setVisible(true);
         
}else
    success.setText("incorrect username or/and password.");

内容的提问来源于stack exchange,提问作者Jericho Gal

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.27 04:24:07