2016-09-02 19 views
0

左の座標と別のパネルの内側にあるパネルの幅を設定したいと思います。 JPanelの左座標と幅だけを設定するには?

innerPanel.setBounds(/* expects a rectangle that 
     specifies y and height, which I would not like to set */); 

setBounds

は、私が設定したくない私は Stack Layout(旧レイアウトのように、垂直方向にこのパネルの内側に物事をスタックしたいと思いますので、私は、同様 y座標と heightを指定することを期待しますVJ ++、MicrosoftのJavaコピー)または GridLayout(0, 1)に存在します。

以下の画像をご覧ください。これらの本の

enter image description here

各大きなパネル内部のパネルです。私は彼らに、左にいくつかのスペースを、右にいくつかのスペースを置いておきたいと思います。私はちょうどを設定するにはどうすればよい

は、他の2つの変数を触れることなく座標とを残し?

+0

gui表現でそれを手助けできるnetbeansのようなまともなIDEを使うのはどうですか? – hedgehog

+0

@hedgehog私は、Windows Builderや他のデザイナーが私のためにコードを書くのが好きではありません。 –

+0

それから、ヒューストンには問題があります...... – hedgehog

答えて

2

、私はすべての書籍が含まれていると私は、コンテナのエッジの周りのパディングやマージンを定義する問題を解決してきたパネルの周りの空の境界線を作成しました。

public class BookRecommendationsContentPanel extends JPanel { 

    public BookRecommendationsContentPanel(JLabel lblStatus) { 
     super(); 

     ... 

     this.setBorder(new EmptyBorder(20, 20, 10, 20)); 
    } 

    public void AddBook(Book book) { 

     JPanel pnlBook = new JPanel(); 
     ... 
     this.add(pnlBook); 
    } 
} 

今はもっとよく見えます。のみ

enter image description here

、今私は、次のような対処するためにいくつかのより多くの事があります。

  1. ワードラップブックの記述を、
  2. コンテンツパネルをスクロール可能にする。
  3. ブック名ラベルのラベルの高さを設定して、コンテンツをクリップしないようにします。

しかし、これらは私が質問で言及した問題ではないので、彼の提案は私の問題を適切に解決します。

0

レイアウトマネージャを使用している場合は、とにかくsetBounds()は効果がありません。幅と高さを指定するにはsetPreferredSize()を使用してください。

あなたの要件を完全に理解していない可能性があります。どのようにコンポーネントを表示したいのかを描いた上で、それを達成するための最良のレイアウトを提案すると役に立ちます。アンドリュー・トンプソンの提案を1として

+0

ありがとうございます。私はちょうど写真を置くために質問を更新しました。 –

+1

* "setPreferredSize()を使って幅と高さを指定するだけです。" * [Java Swingのset(Preferred | Maximum | Minimum)サイズメソッドの使用を避けるべきですか?](http://stackoverflow.com/q/7229226/418556)(はい。)レイアウトが優先サイズを優先する場合があり、そうでない場合があります。 –

+0

@AndrewThompsonすべての書籍は、 'BookRecommendationsContentPanel'という名前のカスタムパネルにあります。 'setPreferredSize'を次のように設定すると、' this.setPreferredSize(new Dimension((int)(this.getParent()。getWidth()* 0.85)、this.getParent()。getHeight())); 'BookRecommendationsContentPanel'のctorに' this.getParent() 'の' NullPointerException'があります。 –

関連する問題