Вот простой пример проблемы, с которой я столкнулся.Обновить JTable после обновления
У меня есть простой класс:
public class Test{
Integer a;
Integer b;
//getters and setters
public void getC()
{
return a + b;
}
}
Обратите внимание, что имеет свойство с именем C, которая является суммой а и Ь.
Я затем связать это с JTable так:
List<Test> testList = new ArrayList<Test>();
...add some Test objects to the list
ObservableList observableList = ObservableCollections.observableList(testList);
JTable table = new JTable();
JTableBinding tableBinding = SwingBindings.createJTableBinding(AutoBinding.UpdateStrategy.READ_WRITE, observableList, table);
Затем я использую следующий код для добавления привязок для каждого свойства а, Ь и с испытываемым объектом. (Обратите внимание, что это только общий код я использую)
BeanProperty beanProperty = BeanProperty.create(properyName);
JTableBinding.ColumnBinding columnBinding = tableBinding.addColumnBinding(beanProperty);
columnBinding.setColumnName(columnName);
columnBinding.setColumnClass(clazz);
columnBinding.setEditable(editable);
Теперь это будет правильно отобразить таблицу, но проблема возникает, когда я обновляю а или б в таблице. Поскольку c вычисляется с помощью a и b, я ожидаю, что c обновится, когда одно из этих значений изменится. Этого не происходит.
Я думаю, что таблица нуждается в обновлении, чтобы отразить новое значение сущностей?
Может ли кто-нибудь объяснить, что мне нужно сделать, чтобы это произошло? Нужно ли добавлять некоторые дополнительные свойства привязки beans?
Вот бобы связывания библиотеки Я использую:
<dependency>
<groupId>org.jdesktop</groupId>
<artifactId>beansbinding</artifactId>
<version>1.2.1</version>
</dependency>
org.jdesktop.swingbinding.SwingBindings
Какой тип SwingBindings вы используете? – MadProgrammer
@MadProgrammer Вы имеете в виду библиотеку? Я сделал обновление с этой информацией – user489041
Да, благодарю вас: D – MadProgrammer