2017-04-24 4 views
0

에서 나는 자바 FX UI는 자바 Example 12-12 Adding Map Data to the Table의 TableView 콜백 코 틀린

그것의 작동을 제어하여 배울

 val cellFactoryForMap = 
object : Callback<TableColumn<Map<*, *>, String>, TableCell<Map<*, *>, String>> { 
       override fun call(p: TableColumn<*, *>): TableCell<*, *> { 
        return TextFieldTableCell(object : StringConverter() { 
         override fun toString(t: Any): String { 
          return t.toString() 
         } 

         override fun fromString(string: String): Any { 
          return string 
         } 
        }) 
       } 
      } 

오류 : (49, 33) Kotlin : 개체는 추상으로 선언되거나 추상 멤버를 구현해야합니다. public abstract fun call (p0 : TableColumn>, String>!) : TableCell, *>, String>! javafx.util.Callback에 정의

가 오류 : (50, 13) 코 틀린은 '호출'아무것도를 무시하지

오류 : (51, 24) 코 틀린 : 유형의 추론 실패 : 생성자 TextFieldTableCell (P0! StringConverter) (51 43) 코 틀린 : 는 ()

오류에 적용 할 수없는 타입이 일치 추론 타입 StringConverter < (??? .. ???)> 뿐이다!

을 예상

오류 : (51, 52) 코 틀린는 : 클래스 StringConverter 예상 한 형식 인수가 javafx.util에 정의

오류 : (52, 21) 코 틀린 'toString은'아무것도에게

오류를 무시하지 : (56, 21) Kotlin : 'fromString'은 아무 것도 무시하지 않습니다.

올바른 코드를 작성하는 방법은 무엇입니까?

답변

1

TextFieldTableCell에서 사용자 유형이 잘못되었습니다.

밀접 TextFieldTableCell<S,T> extends TableCell<S,T>보고 방법 TextFieldTableCell(StringConverter<T> converter)

경우 콜백 반환 유형은 다음 문자열 컨버터는 유형의 제약 조건을 충족 StringConverter<String>이어야합니다, TableCell<Map<*, *>, String>>입니다.

Callback<TableColumn<Map<*, *>, String>, TableCell<Map<*, *>, String>> { 
     TextFieldTableCell(object: StringConverter<String>() { 
      override fun fromString(string: String): String { 
       return string 
      } 

      override fun toString(`object`: String): String { 
       return `object` 
      } 
     }) 
    } 
+0

지금 모든 작동합니다. 고맙습니다. –

+0

@ NameYuri 환영합니다. 대답이 작동하면 다른 사람들이 알 수 있도록 정답으로 표시하십시오 :) –