java 板


LINE

※ 引述《laiDark (煎饺加赖)》之铭言: : 我一直以来很想使用 GridBagLayout 这个方式排版 GridBagLayout 基本上只要会设定,他可以做到任何你要的排版 但缺点就是非常复杂 : code : http://pastie.org/10909674 : main_code : http://pastie.org/10909675 : 不管我怎麽修改 load 按钮仍处於中央 : http://imgur.com/FNk2VpO PS : 底下一些用语和说明大概都是以我自己的理解来讲的,如果有误麻烦指正XD 你的 Code 有几个问题,但我这边先讲为何都一直在中间。 最主要的问题就在你的 weightx 和 weighty 设定 以你的图片来说,这个按钮的 Bag 范围如下: http://i.imgur.com/hCmzsD8.png 因为你指定 wieghtx 是 0 , 代表不需要任何额外的空间比重, 所以这个范围就会刚好是按钮的大小,而整个 JFrame 只有一个 元件的情况下,就会在中间了 如果要能呈现按钮在最左边(你的 code 写 WEST 嘛),至少在 weightx 的地方要给数值(至少不能是 0 ) 也就是把 c0.weightx = 0 改成如 c0.weightx = 1.0 这样的话这个 bag 的范围就会变成这样 http://i.imgur.com/0J5LEZ9.png 在这个情况下,你使用 fill 或者 anchor 才能达成你要的结果。 接着可以参考一下这个图来帮助理解: PS : 这边将 fill 设定成 BOTH , 也就是 c0.fill=GridBagConstraints.BOTH http://i.imgur.com/1rATsLJ.png 以上先解决你的问题 =================================================== 接着说明一下 GridBagConstraints 一些常用的属性意义 fill ==> 填满方式,这个元件要填满的方式,有不填满、垂直、水平、都填满 anchor ==> 所在位置,元件在 bag 中的位置, 8 方位 + 中间共九种 gridx , gridy ==> 这个 bag 要放在哪个 row,column (x,y 座标) gridwidth , gridheight ==> 这个 bag 在 x 和 y 占用了几格 ( 有点类似 html 的 colspan 和 rowspan ) weightx , weighty ==> 上面说过了 在使用 GridBagLayout 制作 UI 时,建议先用纸笔把配置画出来,然後用最少的线条 去做切割,注意,线条只能是横线和直线,而且要切到底,比如: http://i.imgur.com/v4DtZ04.png 切开之後从左上角开始编 x , y 的号码,就如上图所写 ( ) 中的数值 而这个 x , y 就是 gridx 和 gridy,也就是例如:按钮 B 的 gridx=1 , gridy=0 接着看图说故事: http://imgur.com/a/6Ry5d 假设现在想设计一个视窗按钮如上半部的图呈现 那麽我们就先画线把元件切开,这边切成六块,并给予编号 (参考下半部的图) 按钮 C D E 比较好解释,因此先从 CDE 开始列出 按钮编号 gridx gridy gridwidth grideheight ------------------------------------------------------------- C 0 1 1 1 D 1 1 1 1 E 2 1 1 1 注意按钮 A 和 B,由於这两个按钮我没有要填满,也只要置中,所以才可以这样切割 这样切好之後,我们可以看到 按钮A 是从 (0,0) 的地方开始,横跨 1 格 横的是 width,因此 gridwidth 是 2 ( 横跨1格 => 占用两格 , colspan=2 ) 而按钮 B 则是从 (1,0) 开始,也是横跨一格: 按钮编号 gridx gridy gridwidth grideheight ------------------------------------------------------------- A 0 0 2 1 B 1 0 2 1 这样就可达成这个 layout: http://i.imgur.com/TXfAllA.png 其实还有很多要注意的地方,不过先了解 gridx , gridy , gridwidth , gridheight 还有 weightx , weighty 各自的意义会比较容易理解。 其他的讲解就比较复杂,有兴趣可以提供 UI 设计图,然後我再简单介绍看看 --



※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 223.139.188.199
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/java/M.1468779767.A.404.html ※ 编辑: darkk6 (223.139.188.199), 07/18/2016 02:29:33
1F:推 crazwade: 很详细 07/18 09:38
2F:推 gameking: 详细有耐心 给推 07/18 15:04
3F:推 laiDark: 推QQ 谢谢这麽有耐心的写文 问题已解决 07/18 18:52
4F:推 psp800320: 超详细 01/09 21:58







like.gif 您可能会有兴趣的文章
icon.png[问题/行为] 猫晚上进房间会不会有憋尿问题
icon.pngRe: [闲聊] 选了错误的女孩成为魔法少女 XDDDDDDDDDD
icon.png[正妹] 瑞典 一张
icon.png[心得] EMS高领长版毛衣.墨小楼MC1002
icon.png[分享] 丹龙隔热纸GE55+33+22
icon.png[问题] 清洗洗衣机
icon.png[寻物] 窗台下的空间
icon.png[闲聊] 双极の女神1 木魔爵
icon.png[售车] 新竹 1997 march 1297cc 白色 四门
icon.png[讨论] 能从照片感受到摄影者心情吗
icon.png[狂贺] 贺贺贺贺 贺!岛村卯月!总选举NO.1
icon.png[难过] 羡慕白皮肤的女生
icon.png阅读文章
icon.png[黑特]
icon.png[问题] SBK S1安装於安全帽位置
icon.png[分享] 旧woo100绝版开箱!!
icon.pngRe: [无言] 关於小包卫生纸
icon.png[开箱] E5-2683V3 RX480Strix 快睿C1 简单测试
icon.png[心得] 苍の海贼龙 地狱 执行者16PT
icon.png[售车] 1999年Virage iO 1.8EXi
icon.png[心得] 挑战33 LV10 狮子座pt solo
icon.png[闲聊] 手把手教你不被桶之新手主购教学
icon.png[分享] Civic Type R 量产版官方照无预警流出
icon.png[售车] Golf 4 2.0 银色 自排
icon.png[出售] Graco提篮汽座(有底座)2000元诚可议
icon.png[问题] 请问补牙材质掉了还能再补吗?(台中半年内
icon.png[问题] 44th 单曲 生写竟然都给重复的啊啊!
icon.png[心得] 华南红卡/icash 核卡
icon.png[问题] 拔牙矫正这样正常吗
icon.png[赠送] 老莫高业 初业 102年版
icon.png[情报] 三大行动支付 本季掀战火
icon.png[宝宝] 博客来Amos水蜡笔5/1特价五折
icon.pngRe: [心得] 新鲜人一些面试分享
icon.png[心得] 苍の海贼龙 地狱 麒麟25PT
icon.pngRe: [闲聊] (君の名は。雷慎入) 君名二创漫画翻译
icon.pngRe: [闲聊] OGN中场影片:失踪人口局 (英文字幕)
icon.png[问题] 台湾大哥大4G讯号差
icon.png[出售] [全国]全新千寻侘草LED灯, 水草

请输入看板名称,例如:BuyTogether站内搜寻

TOP