2017-07-26 8 views
0

ハローみんながそう私の愚かな質問を無視してくださいFXMLする新しいイム親FXMLにロードしない ここ2日のためにしてみてくださいイムが、成功しませ持っいくつかあり子FXMLファイルは

  1. テーブルすなわちからホワイトスペースを削除表の行のユーザークリック(任意の表示値)新しいFXMLファイルは アンカーペインに開いているときにテーブルサイズは
  2. (行の数は​​異なる) 利用可能な行の数までであるべきである(テーブルビューが表示されている)テーブルビューに割り当てられたものの私はそれをメインビューに表示したい(全部の表とこのテキストの後ろにある2つのテキストフィールドと検索ボタン画像 テーブルのリンク image of required things

以下でのショーとしてスタックに私はここに表示させたい) メインビュー(ヘッダのみとサイドバーを持ってい他のFXMLファイル)

は、ここに私のコード

ですここで最初のポイントについて
public void initialize(URL location, ResourceBundle resources) { 
    databaseHandler = DatabaseHandler.getInstance(); 
    initCol(); 

     String qu = "SELECT * FROM country_tbl "; 
     ResultSet rs = databaseHandler.execQuery(qu); 
      try { 
       while (rs.next()) { 
       String id= rs.getString("id"); 
       String name= rs.getString("countryname"); 
       String description = rs.getString("descr"); 
       String country2char= rs.getString("country2char"); 
       String descrshort = rs.getString("descrshort"); 
       data.add(new addcountryController(id,name, description,country2char,descrshort)); 
       } 
      }catch (SQLException ex) { 
       Logger.getLogger(addcountryController.class.getName()).log(Level.SEVERE, null, ex); 
      } 

     tableUser.setItems(null); 
     tableUser.setItems(data); 

     tableUser.getSelectionModel().setSelectionMode(SelectionMode.MULTIPLE); 
     tableUser.getSelectionModel().getSelectedItems().addListener(new ListChangeListener<addcountryController>() { 
     public void onChanged(ListChangeListener.Change<? extends addcountryController> c) { 
      try { 

       FXMLLoader loader =new FXMLLoader(); 
       loader.load(getClass().getResource("/region/updatecountry.fxml").openStream()); 

       updatecountryController usercontroller=(updatecountryController)loader.getController(); 
        for (addcountryController p : c.getList()) { 
        String ADDID=p.getId(); 
        String ADD=p.getName();  
        String ADD1=p.getDescriptionshort(); 
        String ADD2=p.getDescription(); 
        String ADD3=p.getCountrychar(); 
        usercontroller.setText(ADDID,ADD,ADD1,ADD2,ADD3); 
        }      
        StackPane root = loader.getRoot(); 
        stackmain.getChildren().clear(); 
        stackview.getChildren().add(root);  

      } catch (IOException e) { 
       e.printStackTrace(); 
      } 
      } 
     }); 

答えて

1

こんにちはソリューションです:あなたはtableViewであなたのセルサイズを設定することができ 、あなたは、行のためにそれを使用することができます(私はこれが行の高さを得るための最も簡単な方法であることがわかった)高さを得る。 その後あなたがテーブルのprefHeightこのようなあなたのデータのサイズをバインドする必要があります。

tableView.setFixedCellSize(20); 
tableView.prefHeightProperty().bind(Bindings.size(data).multiply(tableView.getFixedCellSize()).add(30)); 

あなたはtableHeaderRowのサイズを追加する必要があり、これが最も簡単な方法ですので、.add(30)は少しを行うには、がありますその値を明示的に設定します。正確な値を取得したい場合は、.lookupを使用してTableHeaderRowを取得し、その高さを取得します。

私はあなたの2番目の問題を実際にどこに表示したいのか分かりません。 FXMLLoaderを使用してそのビューをロードして追加することができますが、追加する場所を正確に指定する場合(.fxml、テーブルを含む.fxmlとのリンクはどのようにします)

関連する問題