Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/oop/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
类间Java面向对象函数调用_Java_Oop_Class_Function Calls_Message Passing - Fatal编程技术网

类间Java面向对象函数调用

类间Java面向对象函数调用,java,oop,class,function-calls,message-passing,Java,Oop,Class,Function Calls,Message Passing,我是OOD的新手,从事学术项目。 我在编程时遇到了一个问题 这个场景是我有一个主类,我在其中创建了一个“login”类的对象并调用它的函数 现在,在“login”类函数中,我创建了一个jFrame类的对象来显示登录视图,用户在其中输入登录信息并按下登录按钮 现在我希望当用户按下登录按钮时,我应该将该信息传递给我的“login”类中的authenticate函数 问题是,如何调用该函数(它是一个非静态函数),并在信息无效时调用jFrame类的函数以显示错误消息 我想在我的项目中调用这个函数。也许你

我是OOD的新手,从事学术项目。 我在编程时遇到了一个问题

这个场景是我有一个主类,我在其中创建了一个“login”类的对象并调用它的函数

现在,在“login”类函数中,我创建了一个jFrame类的对象来显示登录视图,用户在其中输入登录信息并按下登录按钮

现在我希望当用户按下登录按钮时,我应该将该信息传递给我的“login”类中的authenticate函数

问题是,如何调用该函数(它是一个非静态函数),并在信息无效时调用jFrame类的函数以显示错误消息


我想在我的项目中调用这个函数。

也许你需要重新设计一下你的程序。登录类不应创建JFrame。让login类专注于验证用户及其相关函数。比如说:

  public class Login{

      public boolean authenticate(String uname, String pword){
           return .......
      }

  }
当您需要使用Login函数时,您可以实例化它并调用该函数。例如,您可以创建一个JFrame,在按钮的操作中提示用户输入用户名和密码:

         loginBtn.addActionListener(new ActionListener(){
                public void actionPerformed(ActionEvent e){

                      Login login = new Login();
                      if(login.authenticate(txtUname.getText(), txtPWord.getText())){
                              //display success on JFrame
                      }else{
                              //display failure on JFrame
                      }
                }
          });
其中TxtName和txtPWord可能是JFrame上的2个JTextFields,而lginBtn可能是JFrame上的一个按钮


如果您需要在其他地方执行相同的功能,那么您可以再次实例化Login并调用该功能。

下面是一个很好的示例


一个swing教程链接,用于在Java中不“传递消息”。)我是java新手,所以我写了消息传递/函数调用。。。编辑我的头。真的。我想这和swing库无关。这是一个面向对象的概念。。我只是用这个库来图形化地查看如果你想使用swing而不学习它,不了解它是如何工作的,以及它背后的基本OO概念,你注定会失败的。哈哈,这不是我要问的。。我问我怎样才能调用一个类的函数,形成一个与之无关的jFrame函数?对lough来说没什么。我已经给出了一些链接。这里已经给出了答案。如果您遇到任何错误,您必须发布您的代码。我没有收到错误,您提供的链接也不相关感谢您的帮助。。还有一个问题。。。现在,如果我想在authenticate函数中调用一个showerror视图消息,我应该创建该类的另一个对象吗??如果成功,我应该创建新视图的对象吗??那么我如何隐藏前面的视图呢,因为现在我没有它的对象了。既然你在学习OOP,那么你必须明白每个类只应该负责一件事。您不应该在Login类的authenticate函数中向用户显示任何内容。而只是专注于验证用户。所有的显示错误逻辑都应该放在不同的视图类中,比如JFrame。那么您能为给定的场景提出一个解决方案吗。。如果我必须显示错误或成功时隐藏当前视图并创建一个新视图,我该怎么办?这发生在我发布的代码中按钮的actionListener内部。您可以隐藏JFrame或创建新的JFrame,或者在if语句中执行任何您想执行的操作。这样,如果您在其他地方重用您的登录类,那么您可以决定对失败的身份验证做出不同的反应???不是吗?