2016-12-07 2 views
1

Я использую MATLAB GUIDE для создания графического интерфейса для управления частью оборудования. У меня есть таблица данных, которую пользователь должен заполнить, и каждый раз, когда они выбирают ячейку, новая конфигурация отправляется на аппаратное обеспечение. Это легко сделать, используя CellSelectionCallback().Выбор Обратный вызов для ввода текста

Однако у меня также есть одно ссылочное значение, которое в настоящее время вводится в текстовое поле edit. Я хотел бы, чтобы графический интерфейс отправлял новую конфигурацию аппаратного обеспечения всякий раз, когда пользователь выбирает текстовое поле, но перед тем, как ввести новое значение. Есть ли аналогичная функция SelectionCallback, которая может использоваться для текстового поля? Лучшим решением, которое я придумал, является создание таблицы 1x1 вместо поля редактирования.

ответ

1

Ваш лучший выбор - использовать управление Java, поскольку стандартный MATLAB uicontrol не имеет обратного вызова фокуса. Вы можете использовать объект JTextField, добавить его в свой графический интерфейс с помощью javacomponent, а затем зарегистрировать FocusGainedCallback.

jtext = javax.swing.JTextField(); 
jtext.setHorizontalAlignment(javax.swing.JTextField.CENTER); 

% Add the control to your GUI 
htext = javacomponent(jtext, [10 10 200 10]); 

% Register a callback to be executed when the box is selected 
set(htext, 'FocusGainedCallback', @yourCallback) 
Смежные вопросы