账号密码登录
微信安全登录
微信扫描二维码登录

登录后绑定QQ、微信即可实现信息互通

手机验证码登录
找回密码返回
邮箱找回 手机找回
注册账号返回
其他登录方式
分享
  • 收藏
    X
    jbutton doClick()方法不起作用
    22
    0

    我单元测试的时候用JDialog中的button点击,发现不起作用

    public class Message extends JDialog implements ActionListener {
        protected JFrame messageFrame;
        protected JLabel messsageLabel;
        protected JButton closeButton;
    
        public Message(JFrame jFrame) {
            //调用父类构造函数
            super(jFrame, "提示", true);
    
            //初始化私有变量
            messsageLabel = new JLabel("", JLabel.CENTER);      //文字居中对齐
            closeButton   = new JButton();
    
            //对话框初始化
            messageFrame = jFrame;
            this.setSize(300, 200);
            this.setLayout(new GridBagLayout());
            this.setDefaultCloseOperation(HIDE_ON_CLOSE);
    
            //关闭按钮样式设置
            closeButton.setText("确定");
            closeButton.setSize(50,50);
    
            //添加组件
            this.getContentPane().add(messsageLabel);
            this.getContentPane().add(closeButton);
    
            //为组件注册监听事件
            closeButton.addActionListener(this);
        }
    
        public void showErrorMessage(String message) {
    
            messsageLabel.setText(message);         //label组件添加文字
            this.setLocation(messageFrame.getX()+ messageFrame.getWidth(), messageFrame.getY());     //相对定位
            this.setVisible(true);                  //显示对话框
        }
    
        public void actionPerformed(ActionEvent e) {
            dispose();      //关闭JDialog
        }
    }

    测试代码

    public class ApplicationTest {
        @Test
        public void main() throws Exception {
            //新建一个注册界面
            Register register = new Register();
            assertTrue(register.isShowing());       //断言界面正在处于点击状态
    
            //准备相关数据
            User user = new User("liming@qq.com", "liming");
            register.username.setText(user.getUsername());
            register.password.setText(user.getPassword());
            register.repassword.setText(user.getPassword());
    
            register.register.doClick();                    //手动触发点击按钮事件
    
            System.out.println(register.alertMessage.messsageLabel.getText());
            assertEquals("注册成功!", register.alertMessage.messsageLabel.getText());
            register.alertMessage.closeButton.doClick();    //点击确定按钮
    //
    //        assertFalse(register.alertMessage.isShowing()); //断言窗口消失
        }
    
    }

    然后发现doClick方法不会起作用,也就是确定按钮不会自定被点击

    0
    打赏
    收藏
    点击回答
        全部回答
    • 0
    • 回不到の从前 普通会员 1楼

      如果你的 JButton 的 doClick() 方法不起作用,可能是由于以下几个原因:

      1. JButton 和其相关的 JComponent 的 ID 或类名不匹配。确保你正在尝试点击的 JButton 的 ID 或类名与你在你的代码中定义的 JButton 的 ID 或类名匹配。

      2. JButton 的事件监听器没有被正确设置。确保你为 JButton 添加了适当的事件监听器,然后调用相应的方法。

      3. JButton 的事件监听器没有被正确解析。确保你的代码正确解析了 JButton 的事件监听器,并调用了相应的事件处理程序。

      4. JButton 的属性值错误。如果你的 JButton 没有正确的属性值,那么你可能无法调用其 doClick() 方法。

      5. JButton 的标签没有被正确设置。如果你的 JButton 的标签没有被正确设置,那么你可能无法访问它的 ID 或类名。

      如果你能提供更多的代码信息,我可能能更好地帮助你解决问题。

    更多回答
    扫一扫访问手机版
    • 回到顶部
    • 回到顶部