我在一个包中有两个类。在a包中调用了b包中的方法。。在b方法中想弹出一个消息框(JOptionPane.showMessageDialog(this,"用户名或密码不正确","错误",JOptionPane.ERROR_MESSAGE);)但是发现由于this对象是在a包中声明的(JPanel contentPane;)对象。程序不能正常运行。。那里面的this应该怎么写

解决方案 »

  1.   

    将 在a包中声明的(JPanel contentPane;)对象通过构造方法传过来.再
    JOptionPane.showMessageDialog(contentPane,"用户名或密码不正确","错误",JOptionPane.ERROR_MESSAGE);)
      

  2.   

    b方法多加个参数,就是你需要用到的a包中声明的(JPanel contentPane;)对象,然后调用b方法的时候传过来,这样就ok了!
      

  3.   

    我加了参数。。a方法(validateObj.validate(userId,password,type,contentPane);)b方法接受参数应该怎么写我写的是(public void validate(String user,String password,String type,object con)。)但是语法不对。。在b方法里面的con对象应该怎么定义类型
      

  4.   

    JOptionPane.showMessageDialog方法
    showMessageDialog(Component parentComponent,
                                         Object message,
                                         String title,
                                         int messageType);parentComponent - 确定在其中显示对话框的 Frame;如果为 null 或者 parentComponent 不具有 Frame,则使用默认的 Frame
    message - 要显示的 Object
    title - 对话框的标题字符串
    messageType - 要显示的消息类型:ERROR_MESSAGE、INFORMATION_MESSAGE、WARNING_MESSAGE、QUESTION_MESSAGE 或 PLAIN_MESSAGE 
    也就是说第一个参数是Frame或是JFrame,你明白吗
      

  5.   

    我用null成功了。。这是为什么