我已经阅读了很多关于Java中的构造函数的内容,并且在堆栈溢出中搜索相关的问题,但是我仍然很困惑我的程序如何从我的jinternalframe1获得字符串值到jinternalframe2。
我有一个名为jinternalframe1的内部框架。这是我的密码。
ForgotPassword fp = new ForgotPassword();
JDesktopPane MainDesk = this.getDesktopPane();
MainDesk.add(fp);
this.dispose();
fp.show();这是我的jinternalframe1..。
public class ForgotPassword extends javax.swing.JInternalFrame {
public ForgotPassword(String acType, String uName) {
initComponents();
acType = AccountType.getSelectedItem() + "";
uName = username.getText();
}AccountType变量是一个具有三个选项的jcombobox :管理员、LevelOne和LevelTwo。用户名变量是一个jTextField。我还有一个名为Next的jbutton,它调用jinternalframe2。
用户将需要单击Next按钮,并将检查数据库中是否存在用户名。(我已经知道了这一部分),然后隐藏jinternalframe1,如果数据库中存在用户名,则调用jinternalframe2。
现在我被这部分弄糊涂了。jinternalframe2。我希望帐户类型和用户名值从jinternalframe1到jinternalframe2。我正在尝试,但没有运气..。
public class ForgotPassword2 extends ForgotPassword {
public ForgotPassword2(String acType, String uName) {
initComponents();
AccountType.getText() = acType;
username.getText() = uName;
}您会注意到,这里的AccountType变量在jinternalframe2中是一个jTextField。AccountType和用户名jTextField在jinternalframe2中都是不可编辑的(禁用)。
此行发生错误:
ForgotPassword fp = new ForgotPassword();
public ForgotPassword2(String acType, String uName)两行上的错误消息
类ForgotPassword中的构造函数ForgotPassword不能应用于给定类型;必需: String,String查找:无参数 原因:实际的和正式的论点列表的长度不同。
有人能教我如何在我的程序中使用构造函数吗?顺便说一下,我正在使用netbeans。提前谢谢你!
发布于 2014-02-21 21:31:01
这与构造函数无关,更多的是与在不同类的对象之间传递信息有关。首先,你不会像你现在所做的那样,错误地使用继承。相反,您使用组合--需要来自另一个类的信息的类需要对另一个类的活动对象的有效引用。然后,第一个类可以调用另一个类的方法。
我认为,就您的目的而言,使用内部选项窗格(如JOptionPane.showInternalConfirmDialog(...) )以模态方式获取用户信息可能会更好。无论何时打开模态对话框,调用代码都会停留在显示模态对话框的位置。然后,一旦模式对话框不可见,调用代码将继续进行,此时您可以查询选项窗格中显示的JPanel类,以获取它保存的数据。
备注:如果您询问有关代码的问题,并且声明您的代码存在“错误”,您将希望将完整的错误消息发布给所有人。
而且,这是无效的Java:
AccountType.getText() = acType;因为不能在赋值语句的左侧调用方法。
发布于 2014-02-21 21:37:20
在这些线路上发生了什么错误?这不是一个有效的陈述:
public ForgotPassword2(String acType, String uName)不太清楚您的设计意图是什么,但根据您发布的内容,我想您需要创建一个新的ForgotPassword2实例:
public class ForgotPassword extends javax.swing.JInternalFrame {
String acType;
String uName;
public ForgotPassword(String acType, String uName) {
this.acType = acType;
this.uName = uName;
}
public void next(){
...
ForgotPassword2 fp2 = new ForgotPassword2(this.acType, this.uName);
...
}
}此外,这一说法非常可疑:
AccountType.getText() = acType;此语句不替换对AccountType中字符串的引用。你需要打电话给策划人。
https://stackoverflow.com/questions/21945368
复制相似问题