MZ Platformとは › 掲示板 › MZプラットフォームユーザー会掲示板 › コンポーネントのサイズ変更について
- このトピックは、 8 返信、 2 投稿者 です。最終更新日: 1 年, 10 ヶ月 前 伊予研究会
-
著者投稿
-
2021年8月24日 at 11:55 AM #6486伊予研究会一般参加者
コンポーネントのサイズ変更について、ご教示ください。
コンポーネントを後からサイズ変更したいコマンドを入れたところ、
テキストフィールドでは文字を入力すると、また数値入力フィールドではクリックすると、サイズが元に戻ってしまいます。
数値入力カウンタは白い枠は大きくなるようですが、元のサイズが大きくなっていません。
プログラムを添付しますので、よろしくお願いいたします。2021年8月27日 at 6:10 PM #6495MZPlatformユーザー会サイト管理者返信が遅くなり、大変申し訳ありません。
「resize」は描画の更新がされますが、実際のサイズが変わっているわけではなく、クリックや入力などの画面が再描画されるタイミングで元のサイズに戻っているものと考えられます。サイズの指定には「setPreferredSize(Dimension)」をお使いください。
引数の「Dimension」は直接数値では指定できませんので、[寸法格納変数]コンポーネントを使い、⑴「空の寸法(Dimension)を設定する()」、⑵「寸法にサイズを設定する(int,int)」で設定したい寸法を用意してください。
[寸法格納変数]からのメソッド戻り値で「setPreferredSize(Dimension)」の引数を指定します。以上お試しいただいても、解決しない場合にはどうぞ再度ご連絡ください。
- この返信は、 MZPlatformユーザー会 により、 3 年, 3 ヶ月 前 に編集されました。
2021年8月29日 at 9:13 AM #6498伊予研究会一般参加者ご回答ありがとうございました。
解決しました。2023年1月10日 at 8:27 AM #6908伊予研究会一般参加者setPreferredSizeを指定しても、日付入力フィールドのフォントサイズを変更すると、それに応じてコンポーネントのサイズ(幅)が自動で変更されます。ラベルやテキストフィールドではフォントサイズを変更してもコンポーネントのサイズは変わりません。
日付入力フィールドのフォントを変更しても、サイズを変えないように(指定したサイズのままに)することは可能でしょうか。2023年1月10日 at 11:44 AM #6909MZPlatformユーザー会サイト管理者ご連絡ありがとうございます。
テキスト類の部品は幅は列数でも指定できますが、Javaの仕様によりメソッド「setPreferredSize(Dimension)」を実行すると、その時のフォントサイズに合わせた列数が新しく設定されます。
列数を「0」にし、列数が指定されていない状態でフォントサイズを変更すればフィールドの幅は変わらないのですが、「setPreferredSize(Dimension)」の実行時に、列数は「0」からフォントサイズに合わせた値へ上書きされてしまいます。
[数値入力フィールド]、[テキストエリア]および[HTML表示パネル]以外は上記のような仕様となっています。
[テキストエリア]は元々列数は「0」、[数値入力フィールド]は一度列数を「0」にすると、PreferredSizeを設定しても変わりません。解決方法としては、以下が考えられます。
➀メソッドでフォントサイズとPreferredSizeを設定する際に、フォントサイズ指定の処理を先に実行する。(列数もフォントサイズに合わせ変更されます。)➁メソッド「setPreferredSize(Dimension)」の後に必ず「setColumns(int)」(引数:固定値,0)を実行し、列数を「0」の指定していない状態に設定する。こちらは手動でフォントサイズを替える場合や後からフォントサイズのみ変更する場合にも有効です。
以上お試しいただき、改善されない場合には、どうぞ再度ご連絡ください。
お手数をお掛けいたしますが、よろしくお願い申し上げます。2023年1月10日 at 4:25 PM #6910伊予研究会一般参加者➁メソッド「setPreferredSize(Dimension)」を手動でできましたので、この方法でしたいと考えております。
コンポーネント格納変数にして実行していますが、引数が良く理解できていないのでご教示ください。
1) 起動メソッド名を設定する(String), 固定値:setColums
2) 起動メソッドに引数を追加する(String, Object), 固定値:java.lang.Integer, 固定値:0
3) 起動メソッドを実行する
を追加したところ、3) でエラーとなりました。よろしくお願いします。
2023年1月11日 at 10:09 AM #6912伊予研究会一般参加者先ほどのコンポーネント格納変数のエラーについて、必要なプログラムのみ記述したMzを添付します。
ボタンを押すと、コメントErrの個所で止まります。よろしくお願いします。
添付ファイル:
2023年1月11日 at 10:33 AM #6914MZPlatformユーザー会サイト管理者ご連絡ありがとうございます。
分かりにくくて大変申し訳ないのですが、数値型のdouble,float,int,long,short型、またboolean型、byte型、char型、void型は、引数の型指定の際に、固定値の欄にそのまま短い型名(例「int」)を入力してください。
文字列型のみ「String」も「java.lang.String」も両方可能です。
その他の型はクラス名を設定します。1) 起動メソッド名を設定する(String), 固定値:setColumns
2) 起動メソッドに引数を追加する(String, Object), 固定値:int, 固定値:0
となります。以上お試しいただき、改善されない場合には、どうぞ再度ご連絡ください。
よろしくお願い申し上げます。- この返信は、 MZPlatformユーザー会 により、 1 年, 10 ヶ月 前 に編集されました。
2023年1月11日 at 1:13 PM #6917伊予研究会一般参加者ご回答ありがとうございました。解決しました。
クラス名を入れるものと思っておりました。 -
著者投稿
- このトピックに返信するには、ログインしてください。