【问题标题】:How to pass a variable value from one JFrame to Another JFrame in Netbeans如何将变量值从一个 JFrame 传递到 Netbeans 中的另一个 JFrame
【发布时间】:2012-03-23 06:17:50
【问题描述】:

我有两个 JFrame login.javaaccount.java
我需要从login.java 页面获取username 并将其放入account.java JFrame 的变量中。如何使用 Swing 在 Java NetBeans 中执行此操作?

【问题讨论】:

标签: java swing netbeans jframe


【解决方案1】:

您可以使用 CardLayout 代替使用 JFrames 在不同表单之间传递值,它将保留您在前一个表单中输入的数据。 您所要做的就是创建一个 JFrameForm 并向其添加面板。

【讨论】:

    【解决方案2】:

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

    在 setter 中设置用户名。并使用 login.java 的对象通过 getter 在 account.java 中使用它...

    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...

    【讨论】:

    • 只是一个简单的建议,因为它处理密码,JPasswordField 的方法getPassword() 返回一个字符数组,所以与其将其更改为String,不如保持原样。这样做是有目的的:-)
    • @nIcEcOw 我觉得如果您不提及目的,它并没有太大帮助。即:检查完数组后,对其进行迭代并覆盖所有值。这样在转储内存时人们将无法读取它
    【解决方案3】:

    既然您已经问过如何将变量值从一个 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);
        }
    

    【讨论】:

      【解决方案4】:

      嗯,你有很好的方法。

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

      在其他类中,你可以轻松地使用该对象以及该值。 通过使用

      CLASSNAME.OBJECT VALUE。

      使用它。

      【讨论】:

        【解决方案5】:

        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 是全局变量,可用于您必须定义 lke 的所有变量:

        String user1;
        

        在将用户名值分配给 user1 之后。这里 cname 是一个名称为 cname 的标签;所以,我们正在向用户看到 cname 的文本。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2018-10-02
          • 1970-01-01
          • 2020-04-14
          • 1970-01-01
          • 1970-01-01
          • 2013-12-17
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多