2017-01-11 11 views
-1

私がきたコピー/貼り付けコードを倍に解決できないことはできないと何かが私のスピナーでうまくいかない:スピナーは、実際には別のものにラップトップから

だから私のコントローラに私がしたこと:

@FXML 
private Spinner<Double> widthSpinner; 

そして、FXML

<Spinner fx:id="sp2" min="0" max="20"></Spinner> 

にそれは今朝働いていたと今、私はエラーを持っている: java.lang.ClassCastException:java.lang.Integer cannot be cast to java.lang.Double

さえSystem.out.println("__:" + widthSpinner.getValue());は私にエラーを与えていないので、それは価値がスピナーを初期化する

+0

Aha !! ...両方のマシンのJavaランタイムが同じであることを確認しましたか? – Hackerman

+1

私は今チェックできませんが、私は95%が両方とも1.8であることを確信しています – azro

+1

司会者もここに通知しました。 –

答えて

-2

解決するには、次のコンパイラは、それがどうやら来ダブル

だ理解していることに:("2" -> "2.0"例)MaxValueminValuestartValue:ちょうど.fxmlファイルに倍増するとint型から次の値の1つを変更私のjdkバージョンのエラーではなくコードで簡単に修正する

0

の方法がある必要な場合のために、キャストの問題ではないので、私は明らかに失望している:

public Spinner(double min, 
       double max, 
       double initialValue) 

または

public Spinner(double min, 
       double max, 
       double initialValue, 
       double amountToStepBy) 

または

new Spinner(SpinnerValueFactory.DoubleSpinnerValueFactory) 

を読んで、widthSpinner.getValue()を使うと2倍の値が得られます。

Spinnerクラスは、一般的な型としてIntegerとStringを持っています(デフォルトではおそらく初期化されています)。

これが役立つかどうか教えてください。 参考:Spinner class documenation on Oracle website

+1

スピナーのような要素を初期化する必要はありません。.fxmlファイルにあり、コントローラの属性として宣言したばかりです そして今朝は別のコンピュータで動作していたため、この問題はここから来ていません – azro

関連する問題