我已经阅读了很多有关Java构造函数的文章,并在stackoverflow上搜索了相关问题,但是我仍然对我的程序如何从jinternalframe1到jinternalframe2获取字符串值感到困惑。

我有一个jinternalframe称为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,具有三个选项:Administrator,LevelOne,LevelTwo。
username变量是一个jTextField。我还有一个名为Next的jbutton,它调用jinternalframe2。

用户将需要单击“下一步”按钮,并将检查数据库中是否存在用户名。 (我已经弄清楚了这部分),然后隐藏jinternalframe1,如果数据库中存在用户名,则调用jinternalframe2。

现在我对这部分感到困惑。jinternalframe2。我想要从jinternalframe1到jinternalframe2的帐户类型和用户名值。我正在尝试此方法,但是没有运气。

public class ForgotPassword2 extends ForgotPassword {

    public ForgotPassword2(String acType, String uName) {
        initComponents();

        AccountType.getText() = acType;
        username.getText() = uName;
    }


您会注意到jinternalframe2中的变量AccountType是jTextField。
jinternalframe2中的AccountType和用户名jTextField均不可编辑(禁用)。

在此行发生错误:

ForgotPassword fp = new ForgotPassword();


public ForgotPassword2(String acType, String uName)


两行错误信息


  无法应用类ForgotPassword中的构造函数ForgotPassword
  给定类型;必需:字符串,找到的字符串:无参数
  原因:实际参数和正式参数列表的长度不同


有人可以启发我如何在我的程序上使用构造函数吗?我正在使用netbeans。先感谢您!

最佳答案

这与构造函数无关,而与在不同类的对象之间传递信息有关。对于一个人,您似乎并没有将继承用于此目的。相反,您使用组合-需要其他类信息的类需要对另一类的活动对象的有效引用。然后,第一个类可以在另一个类上调用方法。

我认为,出于您的目的,最好使用内部选项窗格(例如JOptionPane.showInternalConfirmDialog(...))以模态方式获取用户信息。无论何时打开模式对话框,调用代码都会在显示模式对话框的位置暂停。一旦不再显示模式对话框,调用代码便将恢复,此时您可以查询选项窗格中显示的JPanel类以获取其所保存的数据。

顺便提一句:如果您要询问有关代码的问题,并且声明您的代码有“错误”,则需要发布完整的错误消息,以供所有人查看。

另外,这不是有效的Java:

AccountType.getText() = acType;


因为您不能在赋值语句的左侧进行方法调用。

07-26 00:49