2014-10-21 2 views
-1

Как вы обновляете данные в таблицеView на кнопке Нажмите кнопку FXML?Обновление таблицы FXML на кнопке Нажмите

У меня есть следующая структура файла, и я хочу обновить данные в этой таблице при нажатии кнопки. Кто-нибудь знает решение?

public class MyTable { 

private final SimpleStringProperty ID = new SimpleStringProperty(""); 
private final SimpleStringProperty ParticipantID = new SimpleStringProperty(""); 


public Positions() { 
    this("", "") 
} 

public Positions(String ID, String ParticipantID) { 

    setMemberID(ID); 
    setParticipantID(ParticipantID); 
} 


public String getParticipantID() { 
    return ParticipantID.get(); 
} 

public void setParticipantID(String pID) { 
    ParticipantID.set(ParticipantID); 

} 

public String getID() { 
    return ID.get(); 
} 

public void ID(String cID) { 
    ID.set(ID); 
} 
} 

Я инициализирую эту таблицу в файле tablecontroller для этого. Теперь при нажатии кнопки я хотел бы, чтобы tableview представлял собой обновление файла FXML. Как мне это сделать?

+0

Как насчет очистки списка таблицы и повторного заполнения ее данными о действии кнопки? – ItachiUchiha

ответ

1

Спасибо, но решение этого было иметь одну глобальную информацию ObservableList <>, которую вы затем изменяете при нажатии кнопки события действия. То, что я пытался сделать, это создать еще один наблюдаемый список, который не работает.

1

Если вы хотите обновлять только нажатие кнопки, а не по мере того, как данные изменяются по умолчанию?

Самый простой способ сделать это - создать компонент, в который будут обновляться все данные, и заставить кнопку синхронизировать его с компонентом, представляющим строку в вашей таблице.

public class TableBean 
{ 
MyTable child; 
String Id; 
String ParticipantId; 
public void Sync() 
{ 
    child.Id(Id); 
    child.setParticipantID(ParticipantId); 
} 
} 

Важно отметить, что ваши методы нарушают JavaFX convetion, это, вероятно, тормоза вещи. Пример из 3 методов, используемых для каждого свойства в JavaFX.

private final IntegerProperty ratio = new SimpleIntegerProperty(); 

public int getRatio() { 
    return ratio.get(); 
} 

public void setRatio(int value) { 
    ratio.set(value); 
} 

public IntegerProperty ratioProperty() { 
    return ratio; 
} 
Смежные вопросы