首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 更多程式語言 >> 程式設計綜合問答

JavaFX 與 Swing 混合開發中向後台傳遞 JavaBean 的可行性分析

     編輯:程式設計綜合問答

直接傳遞不可行

Swing 組件運行在 EDT (Event Dispatch Thread),JavaFX 運行在 JavaFX Application Thread,兩者無法直接共享對象引用傳遞給後台服務。

標準網絡傳輸方案

  1. 序列化:JavaBean 實現 Serializable,使用 ObjectOutputStream 寫入 Socket 輸出流。
  2. HTTP + JSON:Gson/Jackson 序列化為 JSON,HttpClient/OkHttp POST 到 REST API。
  3. RMI:定義 Remote 接口,註冊 Registry,客戶端查找 Stub 調用遠程方法。
  4. gRPC:定義 .proto,生成 Stub,高性能二進制傳輸。

代碼示例:HTTP + JSON

// JavaBean
public class User implements Serializable {
    private Long id;
    private String name;
    // getter/setter
}

// Swing/JavaFX 共用發送邏輯
public void sendUser(User user) {
    String json = new Gson().toJson(user);
    Request request = new Request.Builder()
        .url("https://api.example.com/user")
        .post(RequestBody.create(json, MediaType.parse("application/json")))
        .build();
    OkHttpClient client = new OkHttpClient();
    client.newCall(request).enqueue(new Callback() { ... });
}

建議

採用 HTTP/JSON 或 gRPC,解耦前端技術棧與後端服務,便於未來遷移至純 JavaFX 或 Web 前端。

參考博客

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved