当前位置: 首页 > 知识库问答 >
问题:

如何在不同类的另一个方法中使用一个方法的变量?

柴瀚昂
2023-03-14

我想知道是否可以将变量user2pass2(它们都位于类register中的showWindow()方法中)用于类logindemo中的showWindow()方法,以便在register类中输入的用户名和密码将与logindemo类中的输入匹配。

public class LoginDemo 

    public static void showWindow() {
        JPanel panel = new JPanel();
        JFrame frame = new JFrame("Log in/Sign up ");
        frame.setSize(300, 180);
        frame.setLocationRelativeTo(null);
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        frame.add(panel);

        panel.setLayout(null);

        userLabel = new JLabel("USERNAME");
        userLabel.setBounds(10, 10, 80, 25);
        panel.add(userLabel);

        userText = new JTextField(20);
        userText.setBounds(100, 10, 160, 25);
        panel.add(userText);

        passwordLabel = new JLabel("PASSWORD");
        passwordLabel.setBounds(10, 40, 80, 25);
        panel.add(passwordLabel);

        passwordText = new JPasswordField(20);
        passwordText.setBounds(100, 40, 160, 25);
        panel.add(passwordText);

        button = new JButton("LOG-IN");
        button.setBounds(10, 80, 80, 25);
        button.addActionListener(new LoginDemo());
        panel.add(button);

        success = new JLabel("");
        success.setBounds(10, 110, 300, 25);
        panel.add(success);

        JButton registerButton = new JButton("CREATE ACCOUNT");
        registerButton.setBounds(130, 80, 150, 25);
        panel.add(registerButton);
        registerButton.addActionListener(new ActionListener() {
            @Override
            public void actionPerformed(ActionEvent e) {
                frame.setVisible(false);
                Register w2 = new Register();
                w2.showWindow();
            }
        });

        frame.setVisible(true);
    }

    public void actionPerformed(ActionEvent e){

        Register w2 = new Register();

        String user = userText.getText();
        String password = passwordText.getText();


        if(user.equals(w2.user2) && password.equals(w2.pass2))
        {
            JOptionPane.showMessageDialog(null,"Log in Successful!");
        }
        else
        {

            JOptionPane.showMessageDialog(null,"Invalid Login Details" + " \nLogin Error ");
        }

    }
}
public class Register
 

        label1 = new JLabel("Username");
        label1.setBounds(20, 50, 100, 20);
        frame.add(label1);

        t1 = new JTextField();
        t1.setBounds(130, 50, 100, 20);
        frame.add(t1);

        label2 = new JLabel("Password");
        label2.setBounds(20, 100, 100, 20);
        frame.add(label2);

        t2 = new JPasswordField();
        t2.setBounds(130, 100, 100, 20);
        frame.add(t2);

        submit = new JButton("Submit");
        submit.setBounds(70, 350, 80, 20);
        frame.add(submit);
        submit.addActionListener(new ActionListener() {
            public void actionPerformed(ActionEvent arg0) {
                LoginDemo w1 = new LoginDemo();
                String user2 = t1.getText();
                String pass2 = t2.getText();
                w1.showWindow();
                frame.setVisible(false);


            }
        });



        back = new JButton("Back");
        back.setBounds(250, 350, 80, 20);
        frame.add(back);
        back.addActionListener(new ActionListener() {
            public void actionPerformed(ActionEvent arg0) {
                LoginDemo w1 = new LoginDemo();
                w1.showWindow();
                frame.setVisible(false);



            }
        });


    }

}

共有1个答案

邓光赫
2023-03-14

同意@Federico的评论。如果要实现预期的行为,需要在Register类中添加两个私有成员变量,并为它们添加getter方法。然后您可以从actionPerformed方法分配那些变量值,并使用getter获取值并在LoginDemo中进行比较。但您的代码肯定需要大量的重构。

 类似资料:
  • 问题内容: 在Bruce Eckel的“ Thinking In Java,第四版”的第428页(有关类型信息的章节)中,具有以下示例: 也许我有点累,但是我看不到add()方法中对add()的调用是如何工作的。我一直认为它应该有一个引用,或者是一个静态方法(并且我在ArrayList或List中找不到静态add())。我想念什么? 我只是为自己测试,发现这可行: 问题答案: Java为这样的方法

  • 问题内容: 我是python的新手。我试图在类中将值从一种方法传递给另一种方法。我搜索了该问题,但无法获得适当的解决方案。因为在我的代码中,“ if”正在调用类的方法“ on_any_event”,而该方法反过来应该调用我的另一个方法“ dropbox_fn”,该方法利用了“ on_any_event”中的值。如果“dropbox_fn”方法在类之外,它将起作用吗? 我将用代码说明。 这里的主要问

  • 我需要了解如何将方法返回到方法中,以打印出计算机的随机选择。 打印语句之后的最后一个方法不完整;我只是被这部分卡住了。

  • 我试图创建一个简单的程序来输出由用户输入的星星的数量。我正在尝试学习如何使用一个以上的方法来做到这一点,这是我的代码 我面临的问题是,在循环方法中,我不能使用变量n,有没有办法在main方法中使用变量,在另一个方法中使用变量?泰 -平古

  • 问题内容: 所以我基本上想做的很简单 由于某种原因,它无法正常工作。在我的Javascript控制台(Chrome浏览器)中 编辑1:我已经添加了实际的代码,如您所见,我在构造函数中绑定了validateEmail 问题答案: 您的方法已正确定义,因此问题出在如何 调用上 。 您以一种设置为实例以外的方式调用它。这在事件侦听器中很常见。我想您的代码中有一些类似的代码: React 的推荐解决方案是

  • 问题内容: 如何在同一个变量中调用另一个变量? 问题答案: 首先声明您的方法以接受参数: 然后通过: 使用实例变量不是一个很好的选择,因为它将需要在调用 之前 调用一些代码来设置值,并且对此没有控制权,这可能会导致错误。而且它也不是线程安全的。