如何在NetBeans中从一个JFrame传递变量值到另一个JFrame

8

我有两个JFrames login.javaaccount.java
我需要从login.java页面获取username,并将其放入account.java的变量中。在Java NetBeans使用Swing,该如何实现?


3
PasswordDemo 是一个很好的例子,它使用对话框而不是第二个窗口来实现。 - trashgod
1
"从一个JFrame到另一个JFrame..." 在Netbeans中,与使用Eclipse、IntelliJ或Notepad的方式相同。此时需要理解的是Java,而不是你的IDE。请参考《多个JFrames的使用,好的/坏的实践?》(https://dev59.com/Wmkw5IYBdhLWcg3w8O6o)。 - Andrew Thompson
你是Java的初学者,对NetBeans的GUI Builder感到困惑吗?如果是的话,那么这篇文章可以帮助你——在NetBeans中从一个表单传递值到另一个表单 - ThePCWizard
5个回答

6

使用 CardLayout 替代 JFrames 在不同表单之间传递值,这样可以使您输入的数据在前一个表单中持久化。 您只需要创建一个 JFrameForm 并向其添加面板即可。


5

您可以使用getter和setter方法...

在setter中设置用户名。然后通过login.java对象在account.java中使用getter方法...

public class login {
    private String username;
    private String password;

    public String getUsername() {
        return username;
    }
    public void setUsername(String username) {
        this.username = this.usernameTextField.getText();
    }
    public String getPassword() {
        return password;
    }
    public void setPassword(String password) {
        this.password = this.passwordTextField.getText();
    }
}

使用 login.java 的对象访问 account.java 中的 getPassword()getUsername()。 首先需要将 login.java 的对象传递到 account.java 中...


6
只是一个简单的建议,由于涉及密码,JPasswordField的方法getPassword()返回字符数组,所以最好保持原样而不是将其更改为String。它被设计成这样是有目的的 :-) - nIcE cOw
@nIcEcOw 我觉得如果你不提到目的,它并没有太大帮助。目的是:在检查完数组后,迭代它并覆盖所有值。这样人们在转储内存时就无法读取它了。 - Neuron

4

由于您询问了如何在一个JFrame中传递变量值到另一个JFrame(使用swing),因此,请在login.java中添加一个文本框(tx)和一个按钮(jButton3),并在account.java中添加一个标签(lx),我们将在其中打印来自login.java的文本框的值。

在login.java中输入以下内容:

 private void jButton3ActionPerformed(java.awt.event.ActionEvent evt) {                                         
      String msg= tx.getText();
      new NewJFrame2(msg).setVisible(true);
    } 

在account.java中重载构造函数:-
public NewJFrame2(String abc ){
        initComponents();
        lx.setText(abc);
    }

0

100% 的有效解决方案。假设您正在调用 welcome.java。

Account ac= new Account(new JFrame(), true);

在这行代码之后调用一个名为welcome.java的方法,您需要创建它,例如:

wc.setUser(username);

针对account.java文件

create a method:void setUser(String username) {
        user1 = user; 
        cname.setText(user1);
    }

User1是全局变量,可供所有人使用,您需要像这样定义:

String user1;

在将用户名值分配给user1之后。这里的cname是一个名为cname的标签;因此,我们将cname的文本设置为用户。


0

你有非常好的方法去实现它。

定义该类的新静态最终对象。并将该值保存到对象中。

在其他类中,您可以轻松地使用这些对象和相应的值。 通过使用

CLASSNAME.OBJECT VALUE.

来使用它。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接