コンポーネントのサイズ変更について

MZ Platformとは 掲示板 MZプラットフォームユーザー会掲示板 コンポーネントのサイズ変更について

タグ: ,

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

    コンポーネントのサイズ変更について、ご教示ください。

    コンポーネントを後からサイズ変更したいコマンドを入れたところ、
    テキストフィールドでは文字を入力すると、また数値入力フィールドではクリックすると、サイズが元に戻ってしまいます。
    数値入力カウンタは白い枠は大きくなるようですが、元のサイズが大きくなっていません。
    プログラムを添付しますので、よろしくお願いいたします。

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

    返信が遅くなり、大変申し訳ありません。
    「resize」は描画の更新がされますが、実際のサイズが変わっているわけではなく、クリックや入力などの画面が再描画されるタイミングで元のサイズに戻っているものと考えられます。

    サイズの指定には「setPreferredSize(Dimension)」をお使いください。
    引数の「Dimension」は直接数値では指定できませんので、[寸法格納変数]コンポーネントを使い、⑴「空の寸法(Dimension)を設定する()」、⑵「寸法にサイズを設定する(int,int)」で設定したい寸法を用意してください。
    [寸法格納変数]からのメソッド戻り値で「setPreferredSize(Dimension)」の引数を指定します。

    以上お試しいただいても、解決しない場合にはどうぞ再度ご連絡ください。

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

    ご回答ありがとうございました。
    解決しました。

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

     setPreferredSizeを指定しても、日付入力フィールドのフォントサイズを変更すると、それに応じてコンポーネントのサイズ(幅)が自動で変更されます。ラベルやテキストフィールドではフォントサイズを変更してもコンポーネントのサイズは変わりません。
     日付入力フィールドのフォントを変更しても、サイズを変えないように(指定したサイズのままに)することは可能でしょうか。

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

    ご連絡ありがとうございます。

    テキスト類の部品は幅は列数でも指定できますが、Javaの仕様によりメソッド「setPreferredSize(Dimension)」を実行すると、その時のフォントサイズに合わせた列数が新しく設定されます。
    列数を「0」にし、列数が指定されていない状態でフォントサイズを変更すればフィールドの幅は変わらないのですが、「setPreferredSize(Dimension)」の実行時に、列数は「0」からフォントサイズに合わせた値へ上書きされてしまいます。
    [数値入力フィールド]、[テキストエリア]および[HTML表示パネル]以外は上記のような仕様となっています。
    [テキストエリア]は元々列数は「0」、[数値入力フィールド]は一度列数を「0」にすると、PreferredSizeを設定しても変わりません。

    解決方法としては、以下が考えられます。
    ➀メソッドでフォントサイズとPreferredSizeを設定する際に、フォントサイズ指定の処理を先に実行する。(列数もフォントサイズに合わせ変更されます。)

    ➁メソッド「setPreferredSize(Dimension)」の後に必ず「setColumns(int)」(引数:固定値,0)を実行し、列数を「0」の指定していない状態に設定する。こちらは手動でフォントサイズを替える場合や後からフォントサイズのみ変更する場合にも有効です。

    以上お試しいただき、改善されない場合には、どうぞ再度ご連絡ください。
    お手数をお掛けいたしますが、よろしくお願い申し上げます。

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

    ➁メソッド「setPreferredSize(Dimension)」を手動でできましたので、この方法でしたいと考えております。
    コンポーネント格納変数にして実行していますが、引数が良く理解できていないのでご教示ください。
    1) 起動メソッド名を設定する(String), 固定値:setColums
    2) 起動メソッドに引数を追加する(String, Object), 固定値:java.lang.Integer, 固定値:0
    3) 起動メソッドを実行する
    を追加したところ、3) でエラーとなりました。

    よろしくお願いします。

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

    先ほどのコンポーネント格納変数のエラーについて、必要なプログラムのみ記述したMzを添付します。
    ボタンを押すと、コメントErrの個所で止まります。

    よろしくお願いします。

    添付ファイル:
    #6914
    MZPlatformユーザー会
    サイト管理者

    ご連絡ありがとうございます。
    分かりにくくて大変申し訳ないのですが、数値型のdouble,float,int,long,short型、またboolean型、byte型、char型、void型は、引数の型指定の際に、固定値の欄にそのまま短い型名(例「int」)を入力してください。
    文字列型のみ「String」も「java.lang.String」も両方可能です。
    その他の型はクラス名を設定します。

    1) 起動メソッド名を設定する(String), 固定値:setColumns
    2) 起動メソッドに引数を追加する(String, Object), 固定値:int, 固定値:0
    となります。

    以上お試しいただき、改善されない場合には、どうぞ再度ご連絡ください。
    よろしくお願い申し上げます。

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

    ご回答ありがとうございました。解決しました。
    クラス名を入れるものと思っておりました。

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