GUI之GridLayout基本用法_gui gridlayout-程序员宅基地

技术标签: Java  GUI  

import java.awt.*;

class Layout extends Frame {
    
    public Layout(String title) {
        GridBagLayout layout = new GridBagLayout();
        GridBagConstraints c = new GridBagConstraints();
        this.setLayout(layout);
        c.fill = GridBagConstraints.BOTH; // /设置组件横向纵向可以拉伸
        c.weightx = 1; // /设置横向权重为1   
        c.weighty = 1; // /设置纵向权重为1   这两条设置的是当前行
        this.addComponent("bt1", layout, c);
        this.addComponent("bt2", layout, c);
        this.addComponent("bt3", layout, c);
        c.gridwidth = GridBagConstraints.REMAINDER; // /添加的组件bt4是本行的最后一个组件
        this.addComponent("bt4", layout, c);
        c.weightx = 0; // /设置横向权重为0
        c.weighty = 0; // /设置纵向权重为0  权重即为组件占领容器中多余的水平方向和垂直方向的空白区域
        addComponent("bt5", layout, c);
        c.gridwidth = 1; // /设置组件bt6跨一个网格(默认值)
        this.addComponent("bt6", layout, c);
        c.gridwidth = GridBagConstraints.REMAINDER; // /添加的组件bt7是本行最后一个组件
        this.addComponent("bt7", layout, c);
        c.gridheight = 2;
        c.gridwidth = 1;
        c.weightx = 2;
        c.weighty = 2;     ///以上四条设置的是bt8在容器中的大小
        this.addComponent("bt8", layout, c);
        c.gridwidth = GridBagConstraints.REMAINDER;
        c.gridheight = 1; ///这里设置的是bt9和bt10两个组件的纵向跨越一个网格
        this.addComponent("bt9", layout, c);
        this.addComponent("bt10", layout, c);
        this.pack();///根据窗口里面的布局及组件的preferedSize来确定frame的最佳大小。
        this.setVisible(true);
    }

    // /添加组件的方法
    private void addComponent(String name, GridBagLayout layout,
            GridBagConstraints c) {
        Button bt = new Button(name); // /创建一个名为name的按钮
        layout.setConstraints(bt, c); // /设置GridBagConstraints的对象和按钮的关联
        this.add(bt); // /增加按钮
    }
}

public class Demo {
    
    public static void main(String[] args) {
        new Layout("GridBagLayout");
    }
}

生成的窗口如下:
这里写图片描述

GridLayout 类是一个布局处理器,它以矩形网格形式对容器的组件进行布置。容器被分成大小相等的矩形,一个矩形中放置一个组件。例如,下面是一个将六个按钮布置到三行两列中的 applet:

 import java.awt.*;
 import java.applet.Applet;
 public class ButtonGrid extends Applet {
    
     public void init() {
         setLayout(new GridLayout(3,2));
         add(new Button("1"));
         add(new Button("2"));
         add(new Button("3"));
         add(new Button("4"));
         add(new Button("5"));
         add(new Button("6"));
     }
 }

参考:
Java基础入门 清华出版 chapter 9
http://tool.oschina.net/apidocs/apidoc?api=jdk-zh
http://tool.oschina.net/apidocs/apidoc?api=jdk-zh
https://blog.csdn.net/dongdongsdo0310/article/details/6638903

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/feng_zhiyu/article/details/79984041

智能推荐

qt之QCustomPlot实现鼠标跟随显示xy坐标值,xy轴类型等_qcustomplot打印链表坐标-程序员宅基地

文章浏览阅读1.7w次,点赞45次,收藏195次。一、前言话不多说时间匆忙直接步入正题,本博主要介绍qt用QCustomPlot实现曲线绘制然后 鼠标放在曲线上能实时显示坐标,之前研究这块,网上也有一些参考例程,但总的来说可参考的 文章 还是很少,所以这里就在多分享一章,贡献一份力量。二、开发环境我的开发环境是QT5.10+MSVC2015QCustomPlot 2.0三、准备&参考文章附上对我最有帮助的文章链接:..._qcustomplot打印链表坐标

Adam:一种随机优化算法_adam 公式-程序员宅基地

文章浏览阅读1.7k次。算法理解:Adam = Momentum(动量) + RMSProp(自适应) + bias correction(偏差修正)Momentum:历史梯度的指数衰减平均RMSProp:历史梯度平方的指数衰减平均偏差修正:解决加权平均计算中的冷启动问题,即加权平均值的前几个与实际值相差太远。一阶矩估计和二阶矩估计分别代表原来的动量和自适应部分。模型的梯度是一个随机变量,一阶矩表示梯度均值,二阶矩表示其方差,一阶矩来控制模型更新的方向,二阶矩控制步长(学习率),αt/√vt 是自适应的学习率。用mov._adam 公式

一年中什么时候买计算机最便宜,买电脑,一年中几月份买最值?-程序员宅基地

文章浏览阅读7.2k次。2006-10-27我要在今天开始到明年3月中旬这段时间内买一台组装机,一般来说,电脑是一直降价的,不过最近像内存这些价格在疯涨,其中还有元旦前元旦后和春节前春节后四个特殊的时间,价格波动可能会比较大,我最迟在3月中旬要买好,大家给个意见,在什么时候买最便宜.谢谢了在这一段时间来看春节吧,一般来说春节电脑促销会比较便宜的。但最重要的不是这点,最好还是有比较专业的人一起,这样买一台主流的电脑可能会比..._电脑几月份买最便宜

完美解决 ERROR: Cannot uninstall '***'. It is a distutils installed project and thus we cannot_error: cannot uninstall 'tbb'. it is a distutils i-程序员宅基地

文章浏览阅读2.4w次,点赞14次,收藏23次。因为需要升级某些包的版本,用 pip install --upgrade ***命令更新,但出现无法卸载的情况:ERROR: Cannot uninstall 'scikit-learn'. It is a distutils installed project and thus we cannot accurately determine which files belong to it w..._error: cannot uninstall 'tbb'. it is a distutils installed project and thus

突破编程_C++_字符串算法(判断字符串是否包含)_c++字符串包含-程序员宅基地

文章浏览阅读1.5k次,点赞27次,收藏23次。C++ 字符串算法题:判断一个字符串(称为“主字符串”或“大字符串”)是否包含另一个字符串(称为“子字符串”或“小字符串”)的所有字符,且不论这些字符在主字符串中的顺序和连续性_c++字符串包含

双向循环链表C++-程序员宅基地

文章浏览阅读1.3k次,点赞2次,收藏13次。双向循环链表是在循环链表(不定义头指针,而是定义尾指针)的基础上,增加一个指针域,注意头节点的前驱是指向最后一个元素,链表中存在两个环。

随便推点

字符串中添加<br />换行没效果问题_br换行无效-程序员宅基地

文章浏览阅读8.5k次。有时我们希望在类似tooltip中添加提示信息,需要在文本中添加换行<br/>,但没效果。原因就是<br/>是标签,在显示到浏览器中没有当做标签,作为文本处理了。解决方案:<div dangerouslySetInnerHTML={{__html:tooltip}}/>tooltip:含有<br/>换行的提示文本..._br换行无效

SDUT 2021 Winter Individual Contest - L_j - halloween sale-程序员宅基地

文章浏览阅读1.2k次。题目B - Super MancunianC - Parity GameF - Combo MealG - Maximum PalindromesH - Constructing a NumberJ - Halloween SaleE - Cloudy Day(补)B - Super Mancunian题目链接答案:#include <iostream>#include<bits/stdc++.h>#define ll long long#define ull unsi_j - halloween sale

基于python的NCC互相关匹配_归一化互相关匹配算法实现python-程序员宅基地

文章浏览阅读4.1k次。上一篇文章中利用Harris角点算子提取了图像中的角点。这一篇文章将利用NCC(归一化互相关匹配算法)对两张不同角度的图像的角点进行匹配。本文代码是基于《python计算机视觉》改写的。首先介绍NCC匹配方法。该方法原理较为简单,如下图所示,即计算主图像中每个角点周围窗口与辅图像中每个角点周围窗口的互相关指数。# -*- coding:utf-8 -*-import numpyfr_归一化互相关匹配算法实现python

消融实验(Ablation experiment)是什么?_改网络结构算消融实验吗-程序员宅基地

文章浏览阅读2.3w次,点赞36次,收藏39次。笔者第一次见到消融实验(Ablation experiment)这个概念是在论文《Faster R-CNN》中。消融实验类似于“控制变量法”。假设在某目标检测系统中,使用了A,B,C,取得了不错的效果,但是这个时候你并不知道这不错的效果是由于A,B,C中哪一个起的作用,于是你保留A,B,移除C进行实验来看一下C在整个系统中所起的作用。..._改网络结构算消融实验吗

255665-程序员宅基地

文章浏览阅读49次。75265465465

vue使用高德地图,精确定位&ip定位,获取城市、地区位置_vue3 使用高德api 获取当前详细地址-程序员宅基地

文章浏览阅读2w次,点赞5次,收藏51次。初心-杨瑞超个人博客诚邀您加入qq群(IT-程序猿-技术交流群): 757345416丨(IT-程序猿-技术交流2群): 9369298281、高德地图准备点进入网址:https://lbs.amap.com/api/javascript-api/guide/abc/prepare(1)注册开发者账号(2)进入控制台(3)申请高德地图key2、在index.html中引入高德地图..._vue3 使用高德api 获取当前详细地址