2017-04-19 22 views
-2

こんにちは私は現在、javaFxを使用するプロジェクトをビルドしており、実行時にlistviewオブジェクトのセルの色を動的に変更できるかどうか疑問視していました。リストビューの各セルは、それに関連付けられた色を持つオブジェクトを表します。私が抱えている問題は、各オブジェクトには実行時に生成される色があり、オブジェクトの数は必ずしも一定ではないということです。Javafx listview動的にリストビューのセルの色を変更する

javaFXコードベースが使用している基礎となるGUIはfxmlです。私はCSSを使ってみてみましたが、実行時にオブジェクトの量や色が生成されるため、スタイルシートにハードコードすることはできません。また、セルファクトリを使用して各セルの目的のセルを作成することも検討してきましたが、セルファクトリに渡すには色を付ける必要があり、RGB形式にする必要があります。誰かがこのような問題を経験したことはありますか?以下は、{

selectedMiceListView.setCellFactory(new Callback<ListView<Object>, 
ListCell<Object>>() { 

     // @Override 
         public ListCell<Object> call(final ListView<Object> param) { 
          final ListCell<Object> cell = new ListCell<Object>() { 

           @Override 
           protected void updateItem(final Object item, final boolean empty) { 
            super.updateItem(item, empty); 
             setStyle("-fx-background-color: rgb(" + mice.mice.get(i).red + "," + mice.mice.get(i).green + ", " + mice.mice.get(i).blue + ");"); 

           } 
          }; 
          return cell; 
         } 
        }); 
       } 

私がこれまで試したものです、それは内部クラスが効果的に最終持たなければならないことを述べている(;;私< mice.mice.size()は、i ++は、私= 0をint型)用

変数。私はそれを設定しようとしているrgbの値を受け入れるようにそれを変更する方法はありますか?

+0

とリストビュー内のすべてのセルを描画します。 SOはコード作成ウェブサイトではありません。 – Masoud

答えて

0

はこれを試してみてください、次のコードは、特定の質問をすると、あなたがこれまでに行っているものを提供するようにしてください黒

this.listView 
    .setCellFactory(new Callback<ListView<Object>, ListCell<Object>>() { 

     @Override 
     public ListCell<Object> call(final ListView<Object> param) { 
     final ListCell<Object> cell = new ListCell<Object>() { 

      @Override 
      protected void updateItem(final Object item, final boolean empty) { 
      super.updateItem(item, empty); 
      setBackground(
       new Background(new BackgroundFill(Color.rgb(100, 150, 200), CornerRadii.EMPTY, Insets.EMPTY))); 

      } 
     }; 
     return cell; 
     } 
    }); 
+0

これは、設定されたスタイルメソッドが異なるrgb値をとるように変更できますか? – user3624469

+0

@ user3624469アップデートをご覧ください – Oswald

関連する問題