[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 );
> 
> として、はまりました。
> 
> 以上、参考になれば幸いです。
> 
>