Java JPanels に問題があります。レイアウトが異なる2つのJPanelを、レイアウトもある1つのJPanelに入れたいと思います。それを機能させることさえ可能ですか?
BibP()
setLayout(new GridLayout(5, 1)); //The big JPanel
add(new A(), new FlowLayout(4));
add(new B(), new GridLayout(7,2));
A と B はどちらも JPanels として拡張されたクラスであり、何を変更したりコメントしたりしても、B は常に 1 行に表示されます。A に 4 つの要素を追加し、B に 14 の要素 (JLabels と JTextAreas) を追加しましたが、追加といくつかの計算だけでコードはあまりありません。
問題は、大きな JPanel を配置しようとしている JFrame にある可能性があります。
JFrame.this.add(new BigP(),BorderLayout.CENTER);
編集:
public class BigP extends JPanel{
//Labels and TextAres
public class A extends JPanel{
public A(){
setBorder(new EmptyBorder(0, -50, 0, 0));
//get date and add to textareas
//add the label and textareas
}
}
public class B extends JPanel{
public B (){
setBorder(new EmptyBorder(0, -50, 0, 0));
setBackground(Color.red);
//colum longs for text areas less then 5
//add labels and textareas
}
}
public BigP(){
setLayout(new GridLayout(5, 1));
setBorder(new EmptyBorder(3,-160,0,0));
add(new A(), new FlowLayout(4));
add(new B(), new GridLayout(7,2));
}
}
助けてくれてありがとう。
数回試した後:
私がこれを使用した場合:
add(new B(), new GridLayout(7,2));
レイアウトを印刷すると、Bでこれが得られます。
java.awt.FlowLayout[hgap=5,vgap=5,align=center]
Bでレイアウトを設定した場合:
setLayout(new GridLayout(7, 2));
情報は正しいです:
java.awt.GridLayout[hgap=0,vgap=0,rows=7,cols=2]
しかし、14 個の要素があるはずの JTextAreas が 2 つしか表示されていません。