[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[jfriends] Re: 動的にコンポーネントを追加する
山根です。
細かい解説ありがとうございます。
参考にさせていただきます。
> -----Original Message-----
> From: Satoshi Ishigami [SMTP:ishigami@xxxxxxxxxx]
> Sent: Thursday, June 24, 1999 1:22 PM
> To: jfriends@xxxxxxxxxx
> Subject: [jfriends] Re: [jfriends] Re: 動的にコンポーネントを追加する
>
> >>>>>心の許せる友達・恋人を真剣に作りたい人のサイト!!<<<<<
> □ あなたのデータ・理想のタイプをインプット♪ □
> □ 必ず理想の方が見つかります。会員年齢層は13歳から上限なし □
> □ 大勢でワイワイ遊ぶ企画もあり!さぁK.L.T.へ! □
> □ Click!!→ http://koibito.lovely.to □
>
> いしがみ です。
>
>
> 1 週間ほど前から本メーリングリストに参加しています。
> よろしくお願いします。
>
> revalidate() は、JComponent のメソッドなので Swing のコンポーネントに
> 対して使用できるメソッドです。repaint() する際には、再描画させたい
> コンポーネントに対して revalidate() しておく必要があります。
>
>
> > フレームに対してのinvalidate()と
> > ボタンに対してのreinvalidate()はどちらを選択したほうがよいのでしょうか?
>
> revalidate() は、再描画させたいコンポーネント、および、再描画させたい
> コンポーネントが保持するコンポーネントを、再描画の対象とします。
>
> サンプルプログラムでは、再描画の対象は bot ( JButton コンポーネント ) だけ
> なので、ContentPane に対してでも JButton に対してでもどちらでも
> 良いと思います。
>
> ただし、例えば、JButton を 2 つ追加した場合などは、2 つのボタンに対して
> revalidate() をしなければなりません。その際には、ContentPane に対して
> revalidate() を 1 回だけすれば良いはずです。
>
> 私は、revalidate() は Swing Connection の Threads and Swing のページ
> http://java.sun.com/products/jfc/tsc/archive/tech_topics_arch/threads/thre
> ads.html
> で知りました。
>
> ちなみに、余談ですが「動的にコンポーネントを削除する」場合には、
> removeBot を削除したいコンポーネントを指すオブジェクトとすると、
>
> getContentPane().remove( removeBot );
>
> としてあげなくては行けません。これは、Swing の Window が
> http://java.sun.com/products/jdk/1.2/ja/docs/ja/api/javax/swing/JRootPane.
> html
> のような構造になっているからです。( getContentPane#add してるんだから
> あたりまえだろうけど )。私は、以前、単に
>
> remove( removeBot );
>
> として、はまりました。
>
> 以上、参考になれば幸いです。
>
>