Задайте класс под названием IPAddressComponent
это создает собственный компонент для того, чтобы ввести четыре значения, чтобы сформировать IP-адрес.
Чтобы задать класс, создайте файл под названием IPAddressComponent.m
это содержит следующее определение класса с этими функциями:
Value
общественная собственность, которая хранит IP-адрес.
NumericField
и GridLayout
частные свойства, которые помещают четыре числовых поля редактирования в горизонтальную строку.
setup
метод, который инициализирует NumericField
и GridLayout
.
update
метод, который обновляет NumericField
значения, когда IP-адрес изменяется.
handleNewValue
метод, который устанавливает Value
свойство на основе значений 4 числовых полей редактирования.
classdef IPAddressComponent < matlab.ui.componentcontainer.ComponentContainer
% IPAddressComponent a set of 4 edit fields for IP Address input
properties
Value (1,4) {mustBeNonnegative, mustBeInteger, mustBeLessThanOrEqual(Value, 255)} = [192 168 1 2];
end
events (HasCallbackProperty, NotifyAccess = protected)
ValueChanged % ValueChangedFcn callback property will be generated
end
properties (Access = private, Transient, NonCopyable)
NumericField (1,4) matlab.ui.control.NumericEditField
GridLayout matlab.ui.container.GridLayout
end
methods (Access=protected)
function setup(obj)
% Set the initial position of this component
obj.Position = [100 100 150 22];
% Layout
obj.GridLayout = uigridlayout(obj,[1,5], ...
'RowHeight',{22},'ColumnWidth',{30,30,30,30,22},...
'Padding',0,'ColumnSpacing',2);
% Building blocks
for k = 1:4
obj.NumericField(k) = uieditfield(obj.GridLayout, 'numeric',...
'Limits', [0 255], 'RoundFractionalValues', true, ...
'FontName', 'Courier New', 'FontWeight', 'bold', ...
'ValueChangedFcn',@(o,e) obj.handleNewValue());
end
end
function update(obj)
% Update view
for k = 1:4
obj.NumericField(k).Value = obj.Value(k);
end
end
end
methods (Access=private)
function handleNewValue(obj)
obj.Value = [obj.NumericField.Value];
% Execute the event listeners and the ValueChangedFcn callback property
notify(obj,'ValueChanged');
end
end
end
Затем создайте компонент путем вызова IPAddressComponent
метод конструктора, который обеспечивается ComponentContainer
класс, и возвращает объект как h
. Задайте функцию, которая отображает новый IP-адрес в Командном окне, когда значение компонента изменяется.
Введите IP-адрес 192.168.1.10
в поля редактирования. MATLAB отображает обновленный IP-адрес в Командном окне.