2017-11-14 4 views
0

まず、申し訳ありませんが、私は英語をうまく話せません。第二に、私はグリッドペインに置かれているノードに問題があります。実際には、左上にある最初のものがフォーカスを取得した場合、タブキーを押すと、右側にあるもう一方のフォーカスがフォーカスされません。 この問題を解決するには、traversalEngine抽象クラスを使用するように求められます。TraversalEngine抽象クラスの利用

TraversalEngine engine = new TraversalEngine(gridPane, false) { 

これは、パラメータを削除するために私に尋ねる:私はエンジンオブジェクトを実装しようとすると、それにもかかわらず、それは私がウェブ上どこでも示されているパラメータを入れている場合は動作しません。私はそれを行う場合、私はtravメソッドにアクセスする必要はありません。実際には、表示され、実装できるgetRootメソッドです:

TraversalEngine engine = new TraversalEngine() { 

     @Override 
     protected Parent getRoot() { 
      // TODO Auto-generated method stub 
      return null; 
     } 
    } 

この問題を解決するために何かできることはありますか?

おかげで、あなたはあなたの助けのために

Vinz

+0

...もちろん、プログラムで行うことができるが、最初の場所で正しい順序で子を追加すると、より効率的であるHTTPをお読みください:// stackoverflowの。 com/help/mcveと記述されている例を提供してください:) – kleopatra

答えて

-1

親のノードを集束させるためのトラバーサル順序は、子リスト内で発生した順序です。すべての子ノードに最大で1つのフォーカス可能なノードが含まれていると仮定すると、子ノードを1行ずつ追加するか、子ノードを並べ替えることができます。

これは

public static int getColumnIndex(Node n) { 
    Integer i = GridPane.getColumnIndex(n); 
    return i == null ? 0 : i; 
} 

public static int getRowIndex(Node n) { 
    Integer i = GridPane.getRowIndex(n); 
    return i == null ? 0 : i; 
} 
grid.getChildren().sort(Comparator.comparingInt(ContainingClass::getRowIndex).thenComparingInt(ContainingClass::getColumnIndex)); 
+0

あなたの答えをありがとう。私は明日これを試してみるつもりです:)。 –