2017-05-15 12 views
1

私はjavafxにデータを埋め込んでいるGridPaneを持っています。一番上の行はタイトルセルで、縦に固定する必要があるので、常に画面上に表示されます(Excelの枠をフリーズするなど)。javafxのGridpaneの行を修正するには

私は2つのスクロールペインを使ってみました。これは、私がトップのスクロールペインのスクロールバーを隠そうとしているので、これまでは機能しませんでした。私は一番下のスクロールペインをスクロールペインの下のx軸と同期させてスクロールバーを隠すことができなければなりません。

私はstackpaneの代わりに、上記の方法を使用してについて考えてきましたが、私は、水平スクロールバーを非表示にするかどうかはわかりません。

ご提案いただければ幸いです。

Set<Node> nodes = results_scroll_pane_titles.lookupAll(".scroll-bar"); 
      nodes.stream().filter((node) -> (node instanceof ScrollBar)).map((node) -> (ScrollBar) node).forEach((sb) -> { 
       if (sb.getOrientation() == Orientation.HORIZONTAL) { 
        title_scrollbar = sb; 
       } 
       sb.setVisible(false); 

      }); 

それは、スクロールバーを発見し、実際のスライダバーを隠したが、背景バー:

は、ここでまた、これは私がスクロールバーを非表示に使用しようとしたコードが私のFXML

<BorderPane xmlns:fx="http://javafx.com/fxml" fx:id="results_pane" > 
    <top> 
     <ScrollPane fx:id="results_scroll_pane_titles" > 
       <GridPane fx:id="results_grid_view_titles"> 

       </GridPane> 
      </ScrollPane> 
    </top> 
    <left><VBox fx:id="paint_tools_results"></VBox></left> 
    <center> 

      <ScrollPane fx:id="results_scroll_pane"> 
       <GridPane fx:id="results_grid_view"> 

       </GridPane> 
      </ScrollPane> 
    </center> 
    <right> 
     <VBox fx:id="queue_button_tools" alignment="BOTTOM_LEFT" > 

      <ScrollPane hbarPolicy="NEVER" fx:id="queue_scrollpane" > 
      <VBox fx:id="selected_page_queue"> 
       <padding><Insets top="0" right="10" bottom="0" left="0"/></padding> 
      </VBox> 
      </ScrollPane> 
      <HBox> 
       <Button prefWidth="105" fx:id="view_all">View</Button> 
       <Button prefWidth="105" fx:id="remove_all" >Remove All</Button> 
      </HBox> 
     </VBox>  
    </right> 
</BorderPane> 

ですまだ目に見えました。

+0

ヒント:GridPaneの高さのパーセンテージ、幅のパーセンテージ – Yahya

+0

この問題にどのように当てはまるのか分かりません。 Gridpaneセルは固定幅であり、それらが必要です。 – Nibb

+1

[TableView](https://docs.oracle.com/javase/8/javafx/api/javafx/scene/control/TableView.html)でこれを簡単にすることはできませんか? – VGR

答えて

0

私は修正を考え出しました。 @VGRによるテーブルビューを使用できると指摘されていましたが、私はグリッドペインを使用していたので別のアプローチをとることにしました。

私が行った方法は、スクロールペインのフォントサイズを1ピクセルにすることでした。

results_scroll_pane_titles.setStyle("-fx-font-size:1px"); 

これはスクロールバーを完全に削除しませんでしたが、私のニーズには最適でした。もちろん、子要素のフォントサイズをオーバーライドする必要がありました。

これを実行すると、スクロールバーをバインドして、他のスクロールバーのh軸に沿ってスクロールすることができました。

hPosition.bind(results_scroll_pane.hvalueProperty()); 
      hPosition.addListener(new ChangeListener() { 
       @Override 
       public void changed(ObservableValue arg0, Object arg1, Object arg2) { 
        results_scroll_pane_titles.setHvalue((double) arg2); 

       } 
      }); 

私はtableviewsは私が混乱する必要はありませんいくつかのオーバーヘッドを持っているので、私の目的のために、これはテーブルビューよりも良いを働いたと思います。

関連する問題