2016-04-09 12 views
0

私はJavaFXフレームワークを使用してデスクトップアプリケーションを開発しました。私のメインウィンドウにはタブペーンが含まれています。魔女には多くのサブウィンドウ(タブ)があります。 ユーザーが特定のサブウィンドウに対してCRUD操作を行うと、データベースの内容が変更されます。結果として、他のサブウィンドウは、サブウィンドウによって更新されたコンテンツを使用することができ、サブウィンドウはそれを変更する。 したがって、データベースの変更が発生したときに、他のサブウィンドウでUIを更新するように書いています。ここでデータベースの内容が変更されたときのJavaFXの更新タブ

は、メイン・ウィンドウ構造をillusatres FXMLファイルです:

<?xml version="1.0" encoding="UTF-8"?> 

<?import javafx.scene.control.*?> 
<?import java.lang.*?> 
<?import javafx.scene.layout.*?> 


<AnchorPane maxHeight="-Infinity" maxWidth="-Infinity" minHeight="-Infinity" minWidth="-Infinity" prefHeight="400.0" prefWidth="600.0" xmlns="http://javafx.com/javafx/8.0.40" xmlns:fx="http://javafx.com/fxml/1"> 
    <children> 
     <TabPane layoutX="38.0" layoutY="14.0" prefHeight="400.0" prefWidth="600.0" tabClosingPolicy="UNAVAILABLE" AnchorPane.bottomAnchor="0.0" AnchorPane.leftAnchor="0.0" AnchorPane.rightAnchor="0.0" AnchorPane.topAnchor="0.0"> 
     <tabs> 
      <Tab text="subWindow 1"> 
      <content> 
       <AnchorPane minHeight="0.0" minWidth="0.0" prefHeight="180.0" prefWidth="200.0"> 
        <children> 
         <TableView prefHeight="371.0" prefWidth="600.0" AnchorPane.bottomAnchor="0.0" AnchorPane.leftAnchor="0.0" AnchorPane.rightAnchor="0.0" AnchorPane.topAnchor="0.0"> 
          <columns> 
          <TableColumn prefWidth="75.0" text="C1" /> 
          <TableColumn prefWidth="75.0" text="C2" /> 
          </columns> 
         </TableView> 
        </children> 
        </AnchorPane> 
      </content> 
      </Tab> 
      <Tab text="subWindow 2"> 
      <content> 
       <AnchorPane minHeight="0.0" minWidth="0.0" prefHeight="180.0" prefWidth="200.0"> 
        <children> 
         <ComboBox prefWidth="150.0" /> 
        </children> 
        </AnchorPane> 
      </content> 
      </Tab> 
      <Tab text="subWindow 3"> 
       <content> 
        <AnchorPane minHeight="0.0" minWidth="0.0" prefHeight="180.0" prefWidth="200.0" /> 
       </content> 
      </Tab> 
      <Tab text="subWindow n"> 
       <content> 
        <AnchorPane minHeight="0.0" minWidth="0.0" prefHeight="180.0" prefWidth="200.0" /> 
       </content> 
      </Tab> 
     </tabs> 
     </TabPane> 
    </children> 
</AnchorPane> 

答えて

0

この問題を解決するための一般的な方法は、結合特性を広範囲に使用することです。 JavaFXでは非常にうまくサポートされています。この方法でDBの更新を聞くことはありませんが、すべてのSubWindowsは同じコンポーネントとJavaFX-Propertiesを使用してデータを読み書きします。そのDBに書き込むユーザーが1人だけの場合と同じ効果があります。 MVVMパターンを見てください。 MVF for JavaFXをサポートするフレームワークもあります:mvvmFXまだ試してみませんでした。評価したら教えてください!

関連する問題