Невозможно привязать текстовое поле к выбранному элементу в JTable в NetBeans - PullRequest
4 голосов
/ 01 апреля 2010

Я пытаюсь использовать NetBeans для привязки JTextField к выбранному элементу JTable.

JTable получает свои данные из подкласса AbstractTableModel, который возвращает объекты Cow. В настоящее время каждый объект Cow отображается в виде String с помощью метода toString.

Я пытаюсь связать свойство text объекта JTextField со свойством name объекта Cow, выбранного в JTable.

Я привязал текстовое свойство JTextField в NetBeans к:

flowTable[${selectedElement.name}]

Создает следующую строку сгенерированного кода:

org.jdesktop.beansbinding.Binding binding = 
  org.jdesktop.beansbinding.Bindings.createAutoBinding(
    org.jdesktop.beansbinding.AutoBinding.UpdateStrategy.READ_WRITE, 
    cowTable, 
    org.jdesktop.beansbinding.ELProperty.create("${selectedElement.name}"), 
    cowNameTextField, 
    org.jdesktop.beansbinding.BeanProperty.create("text"));

Связанное значение текстового поля всегда равно нулю.

Что я делаю не так?

Ответы [ 3 ]

0 голосов
/ 21 сентября 2010

Если вас интересует только строка в таблице, а не сам объект Cow:

table.getSelectionModel().addListSelectionListener(new ListSelectionListener() {
    @Override
    public void valueChanged(ListSelectionEvent e) {
        if(!e.getValueIsAdjusting()) {
             Object value = table.getValueAt(e.getFirstIndex(), COLUMN_X);
             jTextField.setText(value.toString());
        }
    }
);
0 голосов
/ 23 января 2011

Поддерживает ли ваш класс Cow добавление PropertyChangeListener? Я не использовал поддержку связывания bean-компонентов от NetBeans так часто, но я помню, что вам это было нужно. В любом случае, немного больше кода может помочь выяснить, что происходит не так.

0 голосов
/ 11 апреля 2010

Есть ли в вашем классе Cow метод public String getName(), возвращающий имя?

Если этого не произойдет, ожидаемый результат будет ожидаемым. Если это произойдет, не могли бы вы опубликовать больше кода (ваш класс данных, tablemodel, таблица ...).

...