首页 > 其他分享 >初步使用管理器创建窗口

初步使用管理器创建窗口

时间:2024-10-14 22:21:57浏览次数:5  
标签:窗口 gbc 创建 GridBagConstraints GridBagLayout new 管理器

之前做过一个关于使用Java建立窗口的小练习,初步学习了有关的知识,使用的是GridBagLayout管理器。
目前学习了如何使用GridBagLayout创建一定大小的窗口,建立按钮和改变按钮大小与间隔。
public class TestDouble extends JFrame {

public TestDouble() {
	  	
    // 创建 GridBagLayout 实例
	setTitle("窗口");
	//setSize(400, 150);
    GridBagLayout layout = new GridBagLayout();
    setLayout(layout);

    // 创建 GridBagConstraints 实例
    GridBagConstraints gbc = new GridBagConstraints();
    
    int num = 5;
    
    for (int i = 1; i <= 5; i++) {
        addbutton(layout, gbc, i, this.getContentPane());
    }

    // 设置窗口属性
    setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    pack();
    setVisible(true);
}

public static void addbutton(GridBagLayout layout,GridBagConstraints gbc,int i,Container container) {
	JButton button = new JButton("按钮" + i);
    button.setPreferredSize(new Dimension(100, 50));
	int hang = 0;
	if(i>5) {
		hang = i / 5;
		i = i % 5;
	}   	
	gbc.gridx = i - 1;
    gbc.gridy = hang - 1;
    gbc.gridwidth = 1;
    gbc.gridheight = 1;
    gbc.fill = GridBagConstraints.NONE;
    gbc.weightx = 0;
    gbc.weighty = 0;
    gbc.insets = new Insets(10, 10, 10, 10);
    layout.setConstraints(button, gbc);
    container.add(button);
}

public static void main(String[] args) {
    SwingUtilities.invokeLater(() -> new TestDouble());
}

}
其中创建的 GridBagLayout 对象为容器的布局管理器,创建的 GridBagConstraints 对象用于设置组件在布局中的约束条件。
要 GridBagConstraints 里的各个属性,包括组件的位置(gridx 和 gridy)、大小(gridwidth 和 gridheight)、填充行为(fill)、内外边距(insets、ipadx 和 ipady)、对齐方式(anchor)以及权重(weightx 和 weighty)。

标签:窗口,gbc,创建,GridBagConstraints,GridBagLayout,new,管理器
From: https://www.cnblogs.com/old-tom/p/18466327

相关文章

  • 牛客AB33.相差不超过k的最多数 (滑动窗口) 牛客.DP最长公共子序列牛客.春游主持人调度
    目录牛客AB33.相差不超过k的最多数 (滑动窗口) 牛客.DP最长公共子序列牛客.春游主持人调度(二)牛客AB33.相差不超过k的最多数 (滑动窗口) 和之前那个空调吹风属于一道题的类型,当然滑动窗口,最大值-最小值,然后<=p即可也可以双指针来取寻找最大值和最小值impor......
  • 使用开源的 Vue 移动端表单设计器创建表单
    FcDesignerVant版是一款基于Vue3.0的移动端低代码可视化表单设计器工具,通过数据驱动表单渲染。可以通过拖拽的方式快速创建表单,提高开发者对表单的开发效率,节省开发者的时间。源码下载 | 演示地址 | 帮助文档本项目采用Vue3.0和ElementPlus进行移动端页面构建,......
  • Kubesphere4.1创建DevOps项目流程
    目的:Kubesphere4.1创建DevOps项目自动化完成前置:1.已经完成完成DevOps插件2.完成Docker私人仓库的搭建(DockerHub国内访问有问题,最好自己搭建,可以选用DockerHarbor)一、创建DevOps项目1.安装完成DevOps插件后,刷新页面,点击创建。完成创建并保存。二、创建凭证 需要......
  • cmd批量创建文件和文件夹
    批量创建文件夹在当前文件夹下批量创建文件夹for/l%iin(start,setp,end)domd新建文件夹%istart:起始数字setp:步长end:结束数字md表示创建文件夹在指定路径下批量创建文件夹在D:\test\下创创建编号为2~10的文件夹:for/l%iin(2,1,10)domdD:\test\新建文件......
  • SQL语句练习1—创建表和索引
    【一句话概括本文】本文旨在通过mysql实验的方式完成4道建表语句题和2道索引题。【本文特色】1.配图。干巴巴的文字没有说服力。一图胜千言。2.sql型配色。颜色已经蕴含了信息。3.实验验证。实践是检验整理唯一的标准,而非作者一拍脑门写出的结果。4.目录。利用目录快速到......
  • 7-3 创建一个倒数计数线程
    创建一个倒数计数线程。要求:1.该线程使用实现Runnable接口的写法;2.程序该线程每隔0.5秒打印输出一次倒数数值(数值为上一次数值减1)。输入格式:N(键盘输入一个整数)输出格式:每隔0.5秒打印输出一次剩余数输入样例:6输出样例:在这里给出相应的输出。例如:6543210代......
  • 列出 查 virtualenv 创建的虚拟环境
    1.手动检查虚拟环境目录通常,虚拟环境创建时会存储在一个指定的目录下。如果你在一个特定的目录下创建了多个虚拟环境,可以通过列出该目录中的内容来查看所有虚拟环境。例如,如果你在 /envs 目录下创建虚拟环境:<BASH>ls/envs这将列出 /envs 目录下的所有子目录,其中每个子......
  • XXJ-JOB任务调度-快速入门-集成项目-动态创建任务
    XXJ-JOB任务调度官方文档:https://www.xuxueli.com/xxl-job/概述XXL-JOB是一个分布式任务调度平台,其核心设计目标是开发迅速、学习简单、轻量级、易扩展。现已开放源代码并接入多家公司线上产品线,开箱即用。文档地址中文文档一、快速入门依赖<dependency><group......
  • vue跨标签页通信(或跨窗口)详细教程
    在Vue应用中,跨标签页(或跨窗口)的通信通常涉及到两个或多个浏览器标签页之间的信息共享。由于每个标签页或窗口都是独立的JavaScript执行环境,它们不能直接通过Vue或其他JavaScript库来直接相互通信。但是,有一些方法可以实现这种跨标签页的通信,主要依靠浏览器提供的WebA......
  • 前端学习第四天笔记 函数 对象 math对象 Date对象 DOM概述 document对象的获取元素、
    文章目录函数函数的声明函数名的提升对象math对象Math.abs()Math.max()和Math.min()Math.floor()和Math.ceil()Math.random()Date对象Date.now()Date对象中的Get方法DOM概述节点节点树Node.nodeType属性document对象_方法/获取元素document.getElementsByTagName()do......