主要内容

このページの翻訳は最新ではありません。ここをクリックして,英語の最新版を参照してください。

プロパティ设置リスナーの実装

この例では,プロパティ设置イベントのリスナーを定義する方法を説明します。特定のプロパティ値が変化すると,リスナーコールバックがトリガーされます。この例で定義されるクラスは,プッシュボタンコールバック用のメソッドとリスナーコールバック用の静的メソッドを使用します。プッシュボタンコールバックがプロパティ値を変更すると,リスナーが预设イベント上でコールバックを実行します。

この例では,次の設計要素を指定してクラス(按钮)を定義します。

  • ResultNumber——観察できるプロパティ

  • uicontrol按钮——コールバックが実行されるときに新しいグラフを生成するためのプッシュボタンオブジェクト

  • 観察できるプロパティで変更に応答するリスナー

按钮クラスの設計

按钮クラスは,数字uicontrolグラフィックスオブジェクトとリスナーオブジェクトをクラスコンストラクターに作成します。

プッシュボタンのコールバックはクラスメソッド(名前は按下)です。プッシュボタンがアクティブになると,次のシーケンスが発生します。

  1. MATLAB®按下メソッドを実行します。これにより,新しい一連のデータがグラフに描画され,ResultNumberプロパティがインクリメントされます。

  2. ResultNumberプロパティの値を設定しようとすると预设イベントがトリガーされ,それにより,リスナーコールバックが実行されてからプロパティ値が設定されます。

  3. リスナーコールバックは,イベントデータを使ってコールバックオブジェクトのハンドル(按钮クラスのインスタンス)を取得し,AxHandleプロパティに保存される轴オブジェクトのハンドルを提供します。

  4. リスナーコールバックは轴标题プロパティを更新し,コールバックの実行後,MATLABはResultsNumberプロパティを新しい値に設定します。

classdef按钮<处理属性(setobserable) ResultNumber = 1结束属性AxHandle结束方法函数buttonObj = PushButton myFig = figure;buttonObj。AxHandle= axes(“父”, myFig);uicontrol (“父”myFig,...“风格”“按钮”...“字符串”“阴谋数据”...“回调”@ (src evnt)按(buttonObj));addlistener (buttonObj,“ResultNumber”“预设”...@PushButton.updateTitle);结束结束方法函数按下(obj)散射(obj.AxHandle randn (20), randn (20),“p”obj。ResultNumber = obj。ResultNumber + 1;结束结束方法(静态)函数updateTitle(~,eventData) h = eventData. affectedobject;集(get (h。AxHandle,“标题”),“字符串”, (的结果数:...num2str (h.ResultNumber)))结束结束结束

散布図は,プッシュボタンを3回クリックした後,おおよそ次のグラフのようになります。

buttonObj =按钮;

関連するトピック