import java.awt.GridBagConstraints;
import java.awt.GridBagLayout;
import java.awt.Insets;
import java.awt.TextArea;
import java.awt.event.TextEvent;
import java.awt.event.TextListener;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
import javax.swing.JFrame;
class TextEditer {
TextArea user_input = new TextArea();
TextArea area1 = new TextArea();
TextArea area2 = new TextArea();
TextArea area3 = new TextArea();
TextArea area4 = new TextArea();
TextEditer(){
JFrame jf = new JFrame();
jf.setTitle("文本编辑器");
jf.setBounds(100,100,600,300);
jf.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
GridBagLayout gbl = new GridBagLayout();
jf.setLayout(gbl);
GridBagConstraints gbc = new GridBagConstraints();
gbc.fill=GridBagConstraints.BOTH;
gbc.gridx=0;
gbc.gridy=0;
gbc.gridwidth=4;
gbc.gridheight=3;
gbc.weightx=1.0;
gbc.weighty=1.0;
gbl.setConstraints(user_input,gbc);
gbc.gridx=4;
gbc.gridy=0;
gbc.gridwidth=1;
gbc.gridheight=1;
gbc.weightx=0.1;
gbc.weighty=0.1;
gbl.setConstraints(area1,gbc);
gbc.gridx=5;
gbc.gridy=0;
gbc.gridwidth=1;
gbc.gridheight=1;
gbc.weightx=0.1;
gbc.weighty=0.1;
gbl.setConstraints(area2,gbc);
gbc.gridx=4;
gbc.gridy=1;
gbc.gridwidth=2;
gbc.gridheight=1;
gbc.weightx=0.2;
gbc.weighty=0.1;
gbl.setConstraints(area3,gbc);
gbc.gridx=4;
gbc.gridy=2;
gbc.gridwidth=2;
gbc.gridheight=1;
gbc.weightx=0.2;
gbc.weighty=0.1;
gbl.setConstraints(area4,gbc);
jf.add(user_input);
jf.add(area1);
jf.add(area2);
jf.add(area3);
jf.add(area4);
jf.pack();
jf.setVisible(true);
}
}
public class Demo4 {
public static void main(String[] args) {
new TextEditer();
}
}
我想要的是第一张图片那样的布局,但是出来的确是第二张那样的布局。我不明白是哪里的错误,求指正。
以area1和area2为例,我想要的是1x1的尺寸,但是实际效果是2x1的尺寸。我不明白这是为什么。
我尝试过对gbc的值进行修改,但是一直没有达到预期效果。