在两个Jframe之间发送数据

时间:2017-04-20 21:44:05

标签: java swing user-interface jframe

当我想将数据从一个帧发送到另一个

时,我遇到了这个问题

我这样做是为了这样做:

public class user_login extends javax.swing.JFrame {
public static String id;

然后在下一个J帧中我已经完成了这个

    String x = user_login.id);

我知道这是一种不好的做法

任何人都可以帮助我!谢谢< 3

1 个答案:

答案 0 :(得分:0)

事实上,你不应该以这种方式在JFrame之间进行沟通 提供组件的完整API可以在两个JFrame之间创建责任组合 此外,使用静态字段来共享数据是一个非常糟糕的主意,因为全局变量通常会在组件和处理之间产生强烈的耦合,而不会增加使用此变量的代码时的副作用风险。 / p>

只应向用户类提供API方面的行为。

您可以创建一个界面来定义要从其他JFrame调用的JFrame的API。使用JFrame实现接口并使用户JFrame具有此接口的引用对象 您只需与用户JFrame进行API通信即可。

API:

public interface UserLoginAPI{
   String getLogin();
}

用户JFrame

public class UserLoginFrame extends JFrame implements UserLoginAPI{

    private String id;
    ...
   public String getLogin(){
       return id;
   }

}

使用JFrame

public class OtherFrame extends JFrame {

    private UserLoginAPI api;

    private OtherFrame(UserLoginAPI userLoginAPI){
        this.api = userLoginAPI;
    }

    public void doSomeProcessing(){
       String loginRetrievedByApi = api.getLogin();
    }

}