2017-12-31 277 views
1

イムJavaFXのコンボボックスに文字列を追加しようとしているが、私は上記のエラーを取得しておく:/
のJavaFX FXMLのコンボボックスのエラー

no suitable method found for add(String) 
method Collection.add(CAP#1) is not applicable 
    (argument mismatch; String cannot be converted to CAP#1) 
method List.add(CAP#1) is not applicable 
    (argument mismatch; String cannot be converted to CAP#1) 
    where CAP#1 is a fresh type-variable: 
    CAP#1 extends Object from capture of ? 

CODE

room_id.getItems().add("Hello"); 

FXML

<?xml version="1.0" encoding="UTF-8"?> 

<?import java.lang.*?> 
<?import java.util.*?> 
<?import javafx.scene.*?> 
<?import javafx.scene.control.*?> 
<?import javafx.scene.layout.*?> 


<AnchorPane prefHeight="400.0" prefWidth="600.0" xmlns="http://javafx.com/javafx/8" xmlns:fx="http://javafx.com/fxml/1" fx:controller="com.AutoMaven.ui.controller.ComboTestController"> 
    <children> 
     <ComboBox fx:id="room_id" layoutX="170.0" layoutY="185.0" prefHeight="31.0" prefWidth="260.0" /> 
    </children> 
</AnchorPane> 

更新

CAP#1のキャプチャからオブジェクトを拡張:CAP#1は、新鮮な型の変数であるところの文字列は、#1
をキャップに変換することはできません:

は、リストを使用した後、私は

互換性のない型を取得しますか?

ObservableList<String> list=FXCollections.observableArrayList("1","2","3","4"); 

room_id.setItems(list); 
+0

他のコンパイラでコードをコンパイルしようとします。 –

+0

コントローラに 'room_id'の宣言を表示できますか? –

答えて

3

コントローラークラスのroom_idフィールドを

と単純に宣言してください
@FXML 
private ComboBox<String> room_id; 

あなたは

@FXML 
private ComboBox<?> room_id; 

room_id.getItems()を使用している場合は、未知の要素型とStringObservableList<?>すなわちObservableListがこのタイプに割り当てることはできませんが返されます。

+1

6時間後、答えが動作しました!感謝祭<3 –

0

これは、ComboBoxの要素タイプが設定されていないためです。これはdefauld "?"によるものです。

ComboBox<?> room_id = new ComboBox<>(); 

ので、文字列は、あなたがこのような何かを追加する必要が値を有するためにFXMLのコンボボックスを強制的に:

<ComboBox fx:id="cbo_Bacteriologie_Aesculine" prefHeight="21.0" prefWidth="105.0" GridPane.columnIndex="1" GridPane.rowIndex="0"> 
    <items> 
     <FXCollections fx:factory="observableArrayList"> 
      <String fx:value="string option" /> 
     </FXCollections> 
    </items> 
</ComboBox> 

または、このようなコードから観察可能なリストを設定する:

このような Java ComboBox .setItems (ObservableList < T > value)

+0

コードで項目を設定する必要があります –

+0

はい、答えに表示されているようなFXCollectionsタグを追加して、同じコードをもう一度お試しください! –

+0

を追加しましたか? –

関連する問題