类间Java面向对象函数调用
我是OOD的新手,从事学术项目。 我在编程时遇到了一个问题 这个场景是我有一个主类,我在其中创建了一个“login”类的对象并调用它的函数 现在,在“login”类函数中,我创建了一个jFrame类的对象来显示登录视图,用户在其中输入登录信息并按下登录按钮 现在我希望当用户按下登录按钮时,我应该将该信息传递给我的“login”类中的authenticate函数 问题是,如何调用该函数(它是一个非静态函数),并在信息无效时调用jFrame类的函数以显示错误消息类间Java面向对象函数调用,java,oop,class,function-calls,message-passing,Java,Oop,Class,Function Calls,Message Passing,我是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语句中执行任何您想执行的操作。这样,如果您在其他地方重用您的登录类,那么您可以决定对失败的身份验证做出不同的反应???不是吗?