2017-11-30 11 views
-1

なぜ私は、彼らはすべて私がスピナーの値を設定する方法については、なぜ、私が見ているのチュートリアルを理解していないこのエラーのJavaFX - SpinnerValueFactory <Integer>はSpinnerValueFactory <CAP#1>エラー

incompatible types: SpinnerValueFactory<Integer> cannot be converted to SpinnerValueFactory<CAP#1> 
    where CAP#1 is a fresh type-variable: 
    CAP#1 extends Object from capture of ? 

を取得していますに変換することはできません長いこれらの行を使用してください

fx_amNpm.setEditable(true); 
    SpinnerValueFactory<Integer> test = new <Integer>SpinnerValueFactory.IntegerSpinnerValueFactory(0, 100, 75); 
    this.fx_amNpm.setValueFactory(test); 

私のコードはコンパイルされません。

+0

ているのですか? 'fx_amNpm'はどのように宣言されていますか(BTWは適切な命名規則を使用してください(https://en.wikipedia.org/wiki/Naming_convention_(プログラミング)#Java))。 –

+0

私はエラーを修正したばかりですが、シーンビルダーはスピナーが受け入れていたオブジェクトのタイプを作ったと考えました。私はこの質問に答えてマークします。私の命名規則もうまくいけば、それは変数を使うために適しています。 – PunkKDB

+0

あなたの命名規則は、標準の受け入れられた命名規則ではありません。他の人があなたのコードを読むことを非常に困難にします。もしあなたがコードを助けたいと思ってコードを共有するのであれば、可能な限り他の人に読めるようにするのがあなたの利益です。 –

答えて

0

シーンビルダーは、私の変数が

private Spinner<?> fx_amNpm; 

も作らしかし、それはそれは受け入れてたオブジェクトの種類を知ることが必要なので、私はそれ

private Spinner<Integer> fx_amNpm = new Spinner<Integer>(); 

しなければなりませんでした。

の作業のコード行がエラーを与えている

SpinnerValueFactory<Integer> valueFactory = new SpinnerValueFactory.IntegerSpinnerValueFactory(1, 5, 3); 

    fx_amNpm.setValueFactory(valueFactory); 
+1

シーンビルダがこのコードを生成している場合は、おそらくコントローラにあります。その場合、 'new Spinner ()'で初期化するべきではありません( 'FXMLLoader'で初期化されるため)。 (また、この回答は、問題の原因が質問に含まれていない限り、他のユーザーにはあまり役に立ちません。) –

関連する問題