2012-01-12 26 views
4

レンダラーが2つあります。それらの1つはJTextAreaを拡張し、もう1つはJPanelを継承します。 GridBagLayoutを使って別のJPanelにそれらを追加します。サイズ変更後にJPanelでJLabelのテキストが消える

リサイズJTextArea私は少なくともいくつかのテキストを見ることができます。 JPanelの場合は2つのラベルがあり、JPanelが小さい場合は完全に消えます。

JLabelを消滅させる代わりにサイズを変更する方法はありますか?


ありがとうございました!

JPanelにBoxLayoutを使用し、最小、優先、最大サイズを指定すると問題が解決しました。

+2

早いほど良いのヘルプについては、[sscce](http://www.sscce.org)を含めてください。 – mre

+1

「レンダラー」とはどういう意味ですか?本当にXXCellRenderer、レンダリングコンポーネントとしてパネルを販売していますか?そうでない場合は、用語を使用しないでください、私を混乱させます;-) – kleopatra

+0

私は2つのコンポーネントがあることを意味します。可能な場合には少なくとも何らかのテキストを表示するため、うまく動作するJTextAreaがその1つです。 JPanelはJLabel全体を隠します。 JPanelの各コンポーネントのサイズを変更するための独自のコードを記述する必要があるということですか? – dmiandre

答えて

1

フレームのsetMinimumSize(Dimension)メソッドを使用してみましたか?

frame.setMinimumSize(new Dimension(100, 100)); 

documentationを見てみると、あなたが見ている動作はプラットフォームに依存しているので、あなたがみとめプラットフォームを持っている場合、あなたがそれぞれのものにしていたコードをテストするのは良いアイデアであってもよいことを私に伝えます。どちらが動作し、どちらが動作しないかを確認してください。

のWindows Vista上で、必要に応じて、次のコード例は、私の作品:

import javax.swing.JFrame; 
import java.awt.Dimension; 

public class Ex extends JFrame { 
    public static void main(String[] args) { 
     JFrame frame = new JFrame("YOU CAN'T SHRINK ME COMPLETELY!"); 
     frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 
     frame.setSize(400, 400); 
     frame.setMinimumSize(new Dimension(100, 100)); 
     frame.setVisible(true); 
    } 
} 
-2

パネルのレイアウトマネージャを確認してください。

+3

この質問には、GridBagLayoutが使用されていることが記載されています。 – camickr

+0

彼は、ラベルが含まれているパネルではなく、外側のパネルにGridBagLayoutを使用していると言います。 – xyz

+0

レイアウトマネージャのチェックで問題を解決する方法は? – camickr

関連する問題