2014-10-06 2 views
0

Скажем у меня есть HBox так:Получить текстовые значения из HBox

val texts = new HBox { 
    content = Seq(new TextArea, new TextArea) 
} 

Теперь я хотел бы получить TextArea ые текстовые значения в коллекции. Как я могу добраться до этих TextArea? texts.content - ObservableList[javafx.scene.Node], а не ObservableList[TextArea].

Я пробовал тип литья, как это:

texts.content.get(0).asInstanceOf[TextArea].getText 

И Готт следующее исключение: java.lang.ClassCastException: javafx.scene.control.TextArea cannot be cast to scalafx.scene.control.TextArea

+0

Как насчет 'TypeCasting'? – ItachiUchiha

+0

Я пробовал 'texts.content (0) .asInstanceOf [TextArea]' и 'texts.content (0) совпадение {case te: TextArea => ...' и оба приводили к исключениям. – Anton

+0

с совпадением У меня нет исключения, но предупреждение «бесплодный тест типа: значение типа javafx.scene.Node также не может быть scalafx.scene.control.TextArea' – Anton

ответ

1

Вы можете печатать литые элементы, а подгружать их, например:

TextArea txt1 = (TextArea)observableList.get(0); 
TextArea txt2 = (TextArea)observableList.get(1); 

Или, если у вас есть несколько TextArea

for(Node node: observableList){ 
    TextArea txt = (TextArea)node; 
    //Do something with the txtArea 
} 
Смежные вопросы