2017-12-12 12 views
0

内部のJava Swingで要素を非表示にする:は、あなたが知っている必要がありますどのようなGridBagLayoutの

  • 私は、パネル内部のGridBagLayoutを持っています。
  • 私のGridBagLayoutの内部で、私は4つの要素があります。
      偽のsetVisibleでgridy = 2
    • エラーメッセージ(でgridy = 1つの
    • テキストフィールドアドレスIPでgridy = 0
    • テキストフィールドのユーザー名で
    • JLabelのタイトルを私は何も触れていない場合)gridy = 3

で、これは完璧にうまく機能しています。

しかし、私がエラーメッセージを表示(true)すると、ビュー全体が上に移動します。 setVisible(false)が実際にアイテムを隠しているのではなく、パネルから削除していると思うようにします。

アイテムを「パネルから削除する」ことなく非表示にするにはどうすればよいですか?

+0

目に見えない要素がレイアウトされない、またはより重要なことは「一般的に」無視されます。レイアウトされていると、通常は0x0のサイズが生成されます...基本的にすべて同じものです – MadProgrammer

+0

*本当に*知って見なければならないのは、[mcve]プログラムでのあなたの最善の試みです。これを投稿してください。そして私自身、エラーメッセージをJLabelに入れ、それを不可視にしませんでした。代わりに、それを見えるようにして、それを空のStringにしてから、後にテキストで埋められたStringを与えます。 –

+0

通常、GUIでは 'setEnabled()'を使用して、ユーザーがコンポーネントとやりとりするのを防ぎます。私はここであなたが本当に達成しようとしていることを確信していません。 – markspace

答えて

0

要素の表示と非表示にはsetVisibleを使用しないでください。ほとんどの場合、フレームのためにそのメソッドを使用します。むしろ、タブを表示せずに罫線がないところでTabbedPaneを使用したい場合は、コード内のタブをいくつかのコンポーネントがあるペインから何もないペインに切り替えるだけです。

関連する問題