2016-12-12 5 views
0

Есть ли простой способ получить данные ячейки Tableview в JavaFX с использованием значений индексов таблицы без использования cellfactory function.Iam ищет простой код однострочный как этотJavaFX Простейший способ получить данные ячейки с использованием индекса таблицы

getValueAt(1,2);//1=column number 2=row number 

Таким образом, я могу получить доступ к данным ячейки столбца = 1 и строки = 2.Thanks заранее

+1

Не совсем уверен, что вы пытаетесь здесь сделать? Можете ли вы предоставить немного больше контекста? Поскольку ячейки повторно используются, вы не получаете доступа к данным на основе ячейки. Однако вы можете получить данные на основе строки в коллекции поддержки. –

+0

@purning pigeon.Here я хотел бы установить цвет фона для ячейки, используя значения индекса table.Cell заводская функция не может быть заменена на моей таблице bcause здесь у меня больше 40 столбцов. Поэтому я предпочитаю этот способ, как то, что мы делаем java swing jtable. –

+0

Вы можете установить цвет в cellFactory столбца во время элемента обновления и применить там css. Если нет, при прокрутке таблицы ваши цвета не изменятся. –

ответ

4

Вы можете получить наблюдаемое с помощью TableColumn и использовать getValue на нем:

public static Object getValueAt(TableView table, int column, int row) { 
    return table.getColumns().get(column).getCellObservableValue(row).getValue(); 
} 
+0

Спасибо за ваши усилия. Но как я могу связать его с моей таблицей –

+0

@AmeenAmi Передавая указанную таблицу в качестве первого параметра методу, если по ссылке вы имеете в виду «использовать с». Или расширьте «TableView», удалите статический и первый параметр и замените 'table' на' this', если это абсолютно необходимо для метода экземпляра для таблицы ... Просто нет метода в 'TableView', который делает это для вы. – fabian

+0

oh my god.I внедрил ваш код, как это, String a = personTable.getColumns(). Get (0) .getCellObservableValue (0) .getValue(). ToString(); System.out.println ("value" + a) ;, и я получил желаемый результат. Спасибо большое –

0

Вы также можете использовать следующий код. когда вы выбираете строку с помощью мыши

ProcessDetail pd = 
(ProcessDetail)tableDefined.getSelectionModel().getSelectedItem(); 
System.out.println("Value is in this row which is selected"+pd.getStatus());