タイマーコンポーネントについて

MZ Platformとは 掲示板 MZプラットフォームユーザー会掲示板 タイマーコンポーネントについて

7 件の投稿を閲覧中 - 1 ~ 7 件(全 7 件)
  • 著者
    投稿
  • #6427
    伊予研究会
    一般参加者

     タイマー6個を6センサの状態でStart(Restart)、Stopをしたいが、分岐処理を入れるとコードが長くなるので、センサ番号の変化によってタイマーを指定したい。
     例えば、リスト変数に[Timer0, Timer1, ・・・・, Timer5]のタイマーコンポーネントを入れておき、リスト番号のコンポネントを呼び出してStart、Stopさせることは可能でしょうか。
     コンポーネント変数の使い方が理解できていないので、それも含めよろしくお願いいたします。

    #6428
    MZPlatformユーザー会
    サイト管理者

    [リスト格納変数]にコンポーネントを入れ、位置を指定してコンポーネントを取得したいときには、[ファンクション]や[イベント生成]など、任意の数値を引数に指定できるコンポーネントを使うと便利です。
    ただし、コンポーネントを取得した後、そのコンポーネントのメソッドを実行するには一旦[コンポーネント格納変数]等に格納しなければなりません。
    簡単な例を作成しましたので、ご覧ください。また[ファンクション]を使用するなら、[ファンクション]の引数にコンポーネント自体を指定しても良いかと思います。併せて2番目の例もご覧ください。[コンポーネント格納変数]の使い方は少し判りにくいので、疑問の点があればご返信ください。
    処理を纏めるには他にも[複合コンポーネント]に入れるなども考えられます。ご検討ください。

    #6432
    伊予研究会
    一般参加者

    ありがとうございました。
    1番目、2番目の例について理解できました。
    2番目の例について、コンポーネントの引数をラベルにした場合、そのラベルに入れる文字には「コンポーネントの格納変数」のメソッドは何を選択すればよろしいでしょうか。
    具体的には、日、時、分、秒のラベルそれぞれ6個あるのですが、これをMzを立ち上げたときに初期値として0を入れています。1つ1つラベルを設定しているので、日、時、分、秒のラベルコンポーネントをファンクションの引数として渡してそれを初期化したいので、その処理の方法がございましたらご教示ください(コンポーネントからラベルに文字を入れる方法です)。

    よろしくお願いいたします。

    #6433
    MZPlatformユーザー会
    サイト管理者

    [コンポーネント格納変数]に設定した[ラベル]のテキスト文字列を設定するメソッド名は「setText(String)」です。この英語のメソッド名は、起動メソッド情報ウィンドウで「全メソッド対象」にチェックを入れると確認できます。

    1.「起動メソッド名を設定する(String)」で引数に固定値で「setText」を設定します。
    2.次に「setText(String)」には引数が必要なので「起動メソッドに引数を追加する(String,Object)」の処理を設定します。引数1には固定値で「String」とします。この「引数の型を示す文字列」にはメソッド名の後ろの「()」の中に入っている文字列を指定します。
    引数2には設定したい値を指定してください。
    3.「起動メソッドを実行する()」の処理を設定します。

    ただ[コンポーネント格納変数]を使っても、処理の設定数はあまり変わらないかもしれません。MZPlatformで提供しているサンプルではコンポーネントの値の初期化の処理は[サブルーチン」や[ファンクション」を先頭に処理を纏めていることが多いです。どうぞご参考になさってください。

    #6434
    伊予研究会
    一般参加者

    ありがとうございました。
    ラベル文字の変更ができました。
    ラベルの色も変更したいのですが、上手くいきません。追加コメントに入れてみたのですが、どのようにすればよろしいでしょうか。
    メソッド対象にチェックを入れるとsetForegroundが表示されるのですが、ドキュメントを見るとクラスから継承されたメソッド javax.swing.JComponentに含まれているので直接変更できないのでしょうか。

    初期設定でコンポーネント格納変数を入れてみましたが、思ったほどコードが短くなりませんでした。しかし、変更する場合は短くなりましたので、ご教示ください。

    よろしくお願いいたします。

    #6436
    MZPlatformユーザー会
    サイト管理者

     引数のデータ型を示す文字列について、ご説明が足りず失礼しました。
    数値,String,boolean,void型以外はクラス名を指定してください。Color型の場合には「java.awt.Color」となります。
    それから、引数2に設定する値ですが、ここではColor型のオブジェクトを設定しなければならず、直接文字列によるRGB値で指定はできません。一旦[色格納変数]に設定して、そこからColorオブジェクトを取得するようにします。
    お送りいただいたファイルを少し変更しましたので、ご覧ください。

    #6438
    伊予研究会
    一般参加者

    ありがとうございました。
    String の代わりにColorを入れたりして試していましたが、java.awt.Colorは気づきませんでした。
    取り急ぎ、お礼まで。

7 件の投稿を閲覧中 - 1 ~ 7 件(全 7 件)
  • このトピックに返信するには、ログインしてください。