2012-02-21 29 views
1

私はパネルを持っており、ユーザーの入力に応じてx個のjlabelsが表示されます。今問題は、ユーザーが情報を入力したときに、ラベルが正しく挿入されてもパネルに正しく表示されないことです。彼らは表示されません。JLabelsは表示されません

フレームのサイズを変更すると表示されますか?

+0

ヘルプソナーのために[SSCCE](http://sscce.org/)で質問を編集してください。そうしないと、everrythingは暗闇の中でのショットになります – mKorbel

答えて

1

私はSwingプログラミングをして以来、私はあなたがコンポーネントを追加した後にあなたがコンテナに仮定している方法を覚えようとしています。私はそれがrevalidate()だと思う。

JPanel yourPanel = new JPanel(); 
yourPanel.repaint(); 
yourPanel.validate(); 
1

は通常、あなたが呼び出す必要があります。子コンポーネントが追加/削除されると、コンポーネント上で自動的にinvalidateが呼び出されます。

validateはコンテナが有効であることをチェックし、そうでなければdoLayoutまたはinvalidateTreeを呼び出して子コンポーネントの位置とサイズを計算します。 validateは、必要に応じてレイアウトを効果的に再実行し、コンテナ内のすべてのコンポーネントの新しいサイズと位置を決定します。

コンテナにコンポーネントを追加/削除した後、LayoutManagerがレイアウトをやり直すためには、validateを親に対して呼び出す必要があります。 validateを呼び出すと再ペイントがスケジュールされないため、validateの後にrepaintに電話する必要があります。

0

invalidateは、コンポーネントまたはその子の1つのサイズが変更されたため、すぐにrelaidまたは可視または不可視になるする必要があるものとしてコンポーネントをマーク:

関連する問題