早点睡吧451 2023-06-01 11:11 采纳率: 25%
浏览 30

GridBagLayout、GridBagConstraints


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();
    }
}

img

img

我想要的是第一张图片那样的布局,但是出来的确是第二张那样的布局。我不明白是哪里的错误,求指正。
以area1和area2为例,我想要的是1x1的尺寸,但是实际效果是2x1的尺寸。我不明白这是为什么。
我尝试过对gbc的值进行修改,但是一直没有达到预期效果。

  • 写回答

1条回答 默认 最新

  • 于扶摇 2023-06-02 00:01
    关注

    程序中使用了GridBagLayout布局管理器,将用户输入的文本内容显示在一个TextArea组件中,并通过正则表达式将其分为四个部分,分别显示在另外三个TextArea组件中。

    程序中创建了一个JFrame窗口,设置了窗口的标题、大小和关闭行为。使用GridBagConstraints来设置组件的位置和大小,通过GridBagLayout将所有组件排列在网格中。

    但是这段代码缺少了import语句,可能需要添加一些必须的包,以及在构造函数中添加代码来初始化组件并设置它们的属性。另外,程序中可能还需要添加事件处理程序来响应用户的操作。

    评论

报告相同问题?

问题事件

  • 创建了问题 6月1日

悬赏问题

  • ¥15 is not in the mmseg::model registry。报错,模型注册表找不到自定义模块。
  • ¥15 安装quartus II18.1时弹出此error,怎么解决?
  • ¥15 keil官网下载psn序列号在哪
  • ¥15 想用adb命令做一个通话软件,播放录音
  • ¥30 Pytorch深度学习服务器跑不通问题解决?
  • ¥15 部分客户订单定位有误的问题
  • ¥15 如何在maya程序中利用python编写领子和褶裥的模型的方法
  • ¥15 Bug traq 数据包 大概什么价
  • ¥15 在anaconda上pytorch和paddle paddle下载报错
  • ¥25 自动填写QQ腾讯文档收集表