首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >如何为GridBagLayout中的单元格(或任何其他可以执行此任务的布局)设置动态宽度

如何为GridBagLayout中的单元格(或任何其他可以执行此任务的布局)设置动态宽度
EN

Stack Overflow用户
提问于 2017-04-25 06:49:24
回答 1查看 438关注 0票数 0

我希望从ini文件构建一个GUI,这样,非程序员就可以在需要时更容易地更改布局。

我可以添加JPanel容器和某些Swing组件,其中包含在文本文件中给出的关键字和参数,如下所示:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
//new panel
JPanel "noborder"

alignleft
JLabel
text "Bias (V)"

JToggleButton
text "+/-"

JSpinner "bias"

alignleft
JLabel
text "V"

newline

alignleft
JLabel
text "Current Setpoint"

gridx "2"
JSpinner "setpoint"

alignleft
JLabel
text "nA"

newline

alignleft
JLabel
text "Feedback"

gridx "2"
JSpinner "feedback"

alignleft
JLabel
text "nm/s"

newline

alignleft
JLabel
text "Compensation"

gridx "2"
JSpinner "compensation"

我认为所使用的语法非常简单,换行符集gridx = 0gridy++gridy++用给定的GridBagConstraints向框架中添加了新的组件,并增加了gridx

这些面板被添加到JFrame中,使用GridBagLayout frameGbc按Y方向对齐,设置如下:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
frameGbc = new GridBagConstraints();
frameGbc.gridx = 0;
frameGbc.gridy = 0;
frameGbc.anchor = GridBagConstraints.CENTER;
frameGbc.fill = GridBagConstraints.HORIZONTAL;
frameGbc.gridwidth = GridBagConstraints.REMAINDER;

添加面板后,gridy将增加1。

当我添加组件时,它将被添加到最后一个添加到框架中的面板中。我可以通过ini设置gridxgridygridwidthgridheight和锚.

我目前使用的文件提供了以下布局:

您可以看到的下半部分(从文本“JLabel (V)”开始)是由我前面提供的ini文件的一部分设置的。

组件占用了它们所需的空间,面板显然是它们的中心。

我想要做的是,对每个面板使用最宽的面板(在这里需要空间最大的面板:有6个按钮的面板)给出的全宽度,例如,对于最后一个面板,程序在最大宽度的四分之一处自动调整一个单元格的宽度,因为放置组件的最大gridxgridx = 3 ->

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
cellwidth = maxwidth/4 

或者,更广泛地说:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
cellwidth = maxwidth / (highest occupied gridx +1)

我玩了几个限制,寻找类似的问题几个小时,因为我找不到其他有类似问题的人--我想这个解决方案肯定很简单,或者很棘手。

我非常想避免使用weightxweightyipadxipady,.因为..ini文件的语法应该尽可能简单。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-04-25 06:57:45

因此,例如,对于最后一个面板,程序在最大宽度的四分之一处自动调整一个单元格的宽度。

你不能这么做。这实际上就像说一个单元格的网格宽度应该是1.5,这是行不通的。

一种解决方案可能是创建嵌套面板。嵌套面板的网格宽度为6,以占用所有6个单元格的空间。然后,添加到该面板中的4个组件将占用该面板可用空间的1/4。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/43614033

复制
相关文章
【移动端网页布局】流式布局案例 ① ( 视口标签设置 | CSS 样式文件设置 | 布局宽度设置 | 设置最大宽度 | 设置最小宽度 )
参考 【移动端网页布局】移动端网页布局基础概念 ③ ( meta 视口标签简介 | 利用 meta 视口标签 设置 网页宽度 / 是否允许用户缩放 / 初始缩放比例 / 最小缩放比例 / 最大缩放比例 ) 博客 , 编写 meta 视口标签 , 视口标签内容如下 :
韩曙亮
2023/04/30
2.4K0
【移动端网页布局】流式布局案例 ① ( 视口标签设置 | CSS 样式文件设置 | 布局宽度设置 | 设置最大宽度 | 设置最小宽度 )
gridbaglayout布局_gridsearch
自己想做个小程序,却在布局上犯了难,使用FlowLayout和BorderLayout这些功能不够强大,使用GridBagLayout却不会,只好求助于文档了。
全栈程序员站长
2022/09/30
4500
5、Java Swing布局管理器(FlowLayout、BorderLayout、CardLayout、BoxLayout、GirdBagLayout 和 GirdLayout)
YGingko
2017/12/27
6.3K0
5、Java Swing布局管理器(FlowLayout、BorderLayout、CardLayout、BoxLayout、GirdBagLayout 和 GirdLayout)
GridBagLayout 以及 GridBagConstraints 用法「建议收藏」
GridBagLayout是一个灵活的布局管理器,部件如果想加入其中需借助GridBagConstraints,其中有若干个参数,解释如下:
全栈程序员站长
2022/09/30
1.7K0
Java开发GUI之GridBagLayout布局
    GridBagLayout布局管理器是比GridLayout布局更加强大的表格布局。GridLayout进行的表格布局其中元素尺寸相同,而GridBagLayout则可以灵活配置其中元素的尺寸和位置。同样,GridBagLayout的使用也更加复杂,其布局依赖GridBagConstraints类。
珲少
2018/08/15
1.1K0
Java开发GUI之GridBagLayout布局
android 动态设置控件宽度,比例等
中间 合同价 竣工结算价 这个分类要求显示4个,所以 这个里面item的宽度是动态计算的。
再见孙悟空_
2023/02/10
2K0
android 动态设置控件宽度,比例等
动态设置布局之LayoutInflater
LayoutInflater是一个用于将xml布局文件加载为View或者ViewGroup对象的工具,我们可以称之为**布局加载器**。
Ant丶
2022/03/01
1.1K0
动态设置布局之LayoutInflater
【移动端网页布局】流式布局案例 ⑤ ( 连续排列的链接图片 | 设置盒子圆角 | 超出部分隐藏 | 设置浮动布局 | 精确计算浮动元素宽度避免换行 | 设置图片宽度自适应 )
将布局中的 三个 链接图片 , 放置在 单独的 <div> 标签中 , 每个 <div> 标签中放置一个 <a> 链接标签 , 在 <a> 链接标签中包裹一个 <img> 图片 ;
韩曙亮
2023/05/04
3.6K0
【移动端网页布局】流式布局案例 ⑤ ( 连续排列的链接图片 | 设置盒子圆角 | 超出部分隐藏 | 设置浮动布局 | 精确计算浮动元素宽度避免换行 | 设置图片宽度自适应 )
让JTable单元格可以自动换行、自动调整宽度以适合单元格内容
源代码也可以从我的Java资料站进行下载! http://Java.EchoChina.net 或 http://61.131.30.54/123/Develop/Java/SC/
阿敏总司令
2019/02/28
1.9K0
让JTable单元格可以自动换行、自动调整宽度以适合单元格内容
根据数据源字段动态设置报表中的列数量以及列宽度
在报表系统中,我们通常会有这样的需求,就是由用户来决定报表中需要显示的数据,比如数据源中共有八列数据,用户可以自己选择在报表中显示哪些列,并且能够自动调整列的宽度,已铺满整个页面。本文就讲解一下Act
葡萄城控件
2018/01/10
4.9K0
根据数据源字段动态设置报表中的列数量以及列宽度
Redis中除了EVAL和EVALSHA之外,其他可以执行Lua脚本的命令
这些命令以及EVAL和EVALSHA命令一起,可以方便地进行Lua脚本的加载、执行和管理。通过执行Lua脚本,可以实现更复杂和灵活的Redis操作。
一凡sir
2023/10/04
2480
Redis中除了EVAL和EVALSHA之外,其他可以执行Lua脚本的命令
grid布局方式_grid网格布局
由GridBagConstraints类实现的布局管理器称为网格组布局管理器,它实现了一个动态的矩形网格,这个矩形风格由无数个矩形单元格组成,每个组件可以占用一个或多个这样的单元格。
全栈程序员站长
2022/10/04
1.2K0
grid布局方式_grid网格布局
Dart中的任务执行队列
② MicroTask Queue执行完之后,执行Event Queue中的Event
ruochen
2021/11/21
2.8K0
CSS进阶11-表格table
(注1:如果有问题欢迎留言探讨,一起学习!转载请注明出处,喜欢可以点个赞哦!) (注2:更多内容请查看我的目录。)
love丁酥酥
2018/08/27
6.6K0
CSS进阶11-表格table
qt中QHBoxLayout或QVBoxLayout布局内控件的动态生成与显示[通俗易懂]
大家好,又见面了,我是你们的朋友全栈君。 —恢复内容开始— #qt中QHBoxLayout或QVBoxLayout布局内控件的动态生成与显示 打个比方,我现在写个小例子,这个小例子是这样的,整个界面分为俩个部分,分为上半部分和下半部分,上半部分为5个按钮,点击5个按钮,下半部分分别会动态的出现不同的label显示内容。(显示内容为:2017到2018欧冠十六强队伍)效果如下图所示:效果如下图所示: ![点击“英超”按钮之后](https://upload-images.jianshu.io/upload_i
全栈程序员站长
2022/09/20
1K0
绑定事件中 如可控制函数的执行次数
var flag = true; function onlyOne() { if(flag) { "这里是要执行的代码"; } flag = false//该方法是控制函数仅执行一次 因为flag是全局变量 onlyOne()函数执行一次后flag就变成false了 函数就执行不了了
大当家
2018/06/28
2.3K0
【Java AWT 图形界面编程】LayoutManager 布局管理器 ④ ( GridLayout 网格布局 | GridBagLayout 网格包布局 )
GridLayout 网格布局管理器 可以将 当前的 Container 容器 划分成 网格 , 每个网格 区域 相同 ;
韩曙亮
2023/03/30
2.7K0
【Java AWT 图形界面编程】LayoutManager 布局管理器 ④ ( GridLayout 网格布局 | GridBagLayout 网格包布局 )
Spark 查看某个正在执行的或已结束的任务中executor与driver日志
如果运行在 YARN 模式,可以在 ResourceManager 节点的 WEB UI 页面根据 任务状态、用户名 或者 applicationId Search 到应用。
大鹅
2021/06/16
6.6K0
Easyui datagrid 设置内容超过单元格宽度时自动换行显示
<table id='tt' class="easyui-datagrid" title="Basic DataGrid" style="width:700px;height:500px" data-options="
授客
2019/09/10
2.2K0
Easyui datagrid 设置内容超过单元格宽度时自动换行显示
点击加载更多

相似问题

如何设置GridBagLayout的宽度?

10

在GridBagLayout中设置任意宽度

13

Swing GridBagLayout执行任务

12

如何为GridBagLayout设置约束

20

Android -动态设置按钮的布局宽度

10
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文