- 浏览: 454883 次
- 性别:
- 来自: 杭州
最新评论
-
小灯笼:
Netty源码剖析视频教程网盘地址:https://pan.b ...
Netty -
ainaruto10:
Java NIO -
ainaruto10:
mark以后仔细看
Netty -
kongdong88:
Netty简单应用与线上服 ...
Netty -
13592539017:
13592539017 写道nich002 写道广告狗滚出IT ...
Netty
以前看过一点jgoodies的布局,没有深入研究。这几天画界面,越看越难看,看不下去了,就要整布局。
在网上找资料,中文资料几乎没有。
翻*墙(这2个字连在一起,居然不能发,于是加了个*)到官网找,发现那里的Demo很好看,都是没有附源码的,狂晕。。。
这里写几个官方白皮书里面的例子,及对应的效果:
FormLayout:
package com.lippeng.helloworld; import java.awt.Container; import javax.swing.JFrame; import javax.swing.JLabel; import javax.swing.JTextField; import com.jgoodies.forms.layout.CellConstraints; import com.jgoodies.forms.layout.FormLayout; public class HelloWorld { public static void main(String[] args) { JFrame jFrame = new JFrame("HelloWorld"); FormLayout layout = new FormLayout("pref, 4dlu, 50dlu, 4dlu, min", // columns "pref, 2dlu, pref, 2dlu, pref");// rows layout.setRowGroups(new int[][] { { 1, 3, 5 } }); Container contentPane = jFrame.getContentPane(); contentPane.setLayout(layout); CellConstraints cc = new CellConstraints(); contentPane.add(new JLabel("Label1"), cc.xy(1, 1)); contentPane.add(new JTextField(), cc.xyw(3, 1, 3)); contentPane.add(new JLabel("Label2"), cc.xy(1, 3)); contentPane.add(new JTextField(), cc.xy(3, 3)); contentPane.add(new JLabel("Label3"), cc.xy(1, 5)); contentPane.add(new JTextField(), cc.xy(3, 5)); contentPane.add(new JTextField(), cc.xy(5, 5)); jFrame.setVisible(true); jFrame.setSize(200, 200); } }
效果如下:
DefaultFormBuilder :
package com.lippeng.helloworld; import java.awt.BorderLayout; import java.awt.Container; import javax.swing.JFrame; import javax.swing.JLabel; import javax.swing.JTextField; import com.jgoodies.forms.builder.DefaultFormBuilder; import com.jgoodies.forms.layout.CellConstraints; import com.jgoodies.forms.layout.FormLayout; public class HelloWorld { public static void main(String[] args) { JFrame jFrame = new JFrame("HelloWorld"); FormLayout layout = new FormLayout(// "right:max(40dlu;p), 4dlu, 80dlu, 7dlu, " // 1st major column + "right:max(40dlu;p), 4dlu, 80dlu", // 2nd major column ""); // add rows dynamically DefaultFormBuilder builder = new DefaultFormBuilder(layout); builder.setDefaultDialogBorder(); builder.appendSeparator("Segment"); builder.append("Identifier", new JTextField()); builder.nextLine(); builder.append("PTI [kW]", new JTextField()); builder.append("Power [kW]", new JTextField()); builder.append("len [mm]", new JTextField()); builder.nextLine(); builder.appendSeparator("Diameters"); builder.append("da [mm]", new JTextField()); builder.append("di [mm]", new JTextField()); builder.append("da2 [mm]", new JTextField()); builder.append("di2 [mm]", new JTextField()); builder.append("R [mm]", new JTextField()); builder.append("D [mm]", new JTextField()); Container contentPane = jFrame.getContentPane(); contentPane.setLayout(new BorderLayout()); contentPane.add(builder.getPanel(), BorderLayout.CENTER); jFrame.setVisible(true); jFrame.setSize(600, 400); } }
下面的代码,效果和上面完全一致,用的是PanelBuilder :
package com.lippeng.helloworld; import java.awt.BorderLayout; import java.awt.Container; import javax.swing.JFrame; import javax.swing.JLabel; import javax.swing.JTextField; import com.jgoodies.forms.builder.DefaultFormBuilder; import com.jgoodies.forms.builder.PanelBuilder; import com.jgoodies.forms.layout.CellConstraints; import com.jgoodies.forms.layout.FormLayout; public class HelloWorld { public static void main(String[] args) { JFrame jFrame = new JFrame("HelloWorld"); FormLayout layout = new FormLayout("right:max(50dlu;p), 4dlu, 75dlu, 7dlu, right:p, 4dlu, 75dlu", "p, 2dlu, p, 3dlu, p, 3dlu, p, 7dlu, " + "p, 2dlu, p, 3dlu, p, 3dlu, p"); PanelBuilder builder = new PanelBuilder(layout); builder.setDefaultDialogBorder(); CellConstraints cc = new CellConstraints(); builder.addSeparator("Segment", cc.xyw(1, 1, 7)); builder.addLabel("Identifier", cc.xy(1, 3)); builder.add(new JTextField(), cc.xy(3, 3)); builder.addLabel("PTI [kW]", cc.xy(1, 5)); builder.add(new JTextField(), cc.xy(3, 5)); builder.addLabel("Power [kW]", cc.xy(5, 5)); builder.add(new JTextField(), cc.xy(7, 5)); builder.addLabel("len [mm]", cc.xy(1, 7)); builder.add(new JTextField(), cc.xy(3, 7)); builder.addSeparator("Diameters", cc.xyw(1, 9, 7)); builder.addLabel("da [mm]", cc.xy(1, 11)); builder.add(new JTextField(), cc.xy(3, 11)); builder.addLabel("di [mm]", cc.xy(5, 11)); builder.add(new JTextField(), cc.xy(7, 11)); builder.addLabel("da2 [mm]", cc.xy(1, 13)); builder.add(new JTextField(), cc.xy(3, 13)); builder.addLabel("di2 [mm]", cc.xy(5, 13)); builder.add(new JTextField(), cc.xy(7, 13)); builder.addLabel("R [mm]", cc.xy(1, 15)); builder.add(new JTextField(), cc.xy(3, 15)); builder.addLabel("D [mm]", cc.xy(5, 15)); builder.add(new JTextField(), cc.xy(7, 15)); Container contentPane = jFrame.getContentPane(); contentPane.setLayout(new BorderLayout()); contentPane.add(builder.getPanel(), BorderLayout.CENTER); jFrame.setVisible(true); jFrame.setSize(600, 400); } }
发表评论
-
linshi
2015-03-09 09:50 2public static List<X509 ... -
根据复合主键删除表中重复数据
2014-11-19 09:52 1385一个数据库表中,开始可能随便放了一些数据,之后把多个字段定为 ... -
jstatd的配置
2014-01-08 12:01 2079为了在本机上方便用jvisualvm看linux机器上JVM ... -
IDEA常用插件
2013-03-12 10:12 1978IDEA每次升级,插件要重装,每装一次,这些插件都要重新装过 ... -
Sybase分页查询
2012-06-08 13:02 17024Sybase的分页,可以说, ... -
ClearCase 常用命令总结
2012-06-08 10:45 6558图形化操作,也基本够用了,但很多操作,还是命令方便。 这 ... -
Access 数据 导入mysql
2011-06-21 17:39 2026刚完成了一件事,虽然不难,觉得挺好玩,在这里写写。。。 ... -
[转]IntelliJ IDEA 快捷键
2011-05-03 22:17 996本文内容,转自:h ... -
HelloWorld 之Junit 单元测试
2011-04-23 21:47 1734想重构,就要有单元测试。没有单元测试,还真不敢随便重构 ... -
Oracle客户端 绿色 安装
2011-04-22 10:38 3885很久没用Oracle了,快一年了吧!没动不代表真的就全忘了, ... -
Archlinux + Xfce4 USB 自动挂载 问题解决
2011-04-09 23:50 7747现在用U盘少了,偶尔挂载个东西,就手动mount一下来 ... -
从HTTP服务器上下载文件
2011-03-30 18:48 1783从Http服务器上下载个文件到本地。写了一点点代码,认为是能 ... -
Eclipse link resource Link文件 文件夹
2011-03-15 15:04 10508Eclipse 的link功能,做的挺好,挺实用。一直在用, ... -
网页倒计时
2010-06-03 11:33 1385刚才看setTimeout,就顺便做了个网页上的倒计时,弄来玩 ... -
SNMP 电子书 下载
2010-05-13 16:34 6178最近在看SNMP方面的资料,发现这方面的资料好少好少,网 ... -
软件测试十大公理
2010-04-20 10:39 1524今天在群里面聊天,一个网友贴出来的软件测试十 ... -
ECMA-262-3 中文 版 下载
2010-04-11 09:55 5740这里下载的是ECMA-262标准 的第三版 的中文 ... -
内心独白
2010-04-05 20:39 1224左手代码右手诗, 人情冷暖两不知。 天下酱油随手打 ... -
Eclipse 包视图折叠
2010-04-04 21:50 7934在Eclipse中,如果包多了,包名前面又完全一样, ... -
eclipse 修改工程类型
2010-03-25 15:56 10717一直用eclipse来做JAVA,功能知道不少了 ...
相关推荐
**JGoodies FormLayout** 是一个强大的 Java Swing 布局管理器,它为开发者提供了更灵活、可读性更强的方式来组织组件在容器中的布局。相比于 Swing 内置的布局管理器,如 FlowLayout、GridLayout 和 BorderLayout,...
java swing 布局所需组件formlayout所需jar包 jgoodies-common-1.6.0 jgoodies-forms-1.7.2 本人在烽火期间,使用的就是FormLayout布局,简单易用、功能强大,适用于swing企业和感兴趣的Java可视化兴趣爱好者。如果...
**JGoodies Look Demo**是基于Java Swing的一个高级外观组件库,主要目的是为了提升Swing应用的用户界面视觉效果和交互体验。这个组件库由JGoodies公司开发,提供了多种可定制的外观风格,使得开发者可以轻松地为...
JFormDesigner完全支持JGoodies FormLayout , TableLayout , GridBagLayout ,和其他标准配置管理人员。先进的GridBagLayout支持允许规格的横向和纵向的差距(如TableLayout ) ,这使得设计的一种形式一致差距...
JFormDesigner完全支持JGoodies FormLayout , TableLayout , GridBagLayout , 和其他标准配置管理人员。先进的GridBagLayout支持允许规格的横向和纵向的差距(如TableLayout ) , 这使得设计的一种形式一致差距...
**FormLayout**是JGoodies Forms框架的核心组件,它提供了一种基于表格形式的布局模型,允许开发者以直观且灵活的方式定义面板中的元素位置和大小。与传统的Swing布局管理器相比,FormLayout在处理复杂布局时具有...
3. **表单布局(FormLayout)**:FormLayout 是JGoodies Forms 库中最主要的布局管理器,它使用列和行的网格结构,允许开发者通过简单的字符串定义布局模式。这种布局方式允许更灵活的调整和扩展,使得复杂的界面...
jGoodies由Karsten Lentzsch创建,包含了多个子模块,如jgoodies-binding、jgoodies-common、jgoodies-forms以及jgoodies-looks,每个子模块都有其独特的功能和应用场景。本文将详细介绍这些模块的主要功能,并探讨...
这个压缩包包含的文件涵盖了JGoodies的多个模块,如 **forms-1_2_1**、**looks-2_2_0**、**binding-2_0_5**、**animation-1_2_0** 和 **validation-2_0_1**,以及一个运行的Demo——**looksdemo-2.2.0**。...
《深入解析jgoodies-looksJava Feel&look》 在Java GUI编程中,美观的界面设计是提升用户体验的重要因素之一。jgoodies-looks库,作为一款强大的Java外观(Look and Feel)框架,为开发者提供了丰富的UI样式选择,...
JGoodies是一款强大的Java库,由Karsten Lentzsch开发,它包含了一系列的组件和工具,主要用于GUI(图形用户界面)设计、数据绑定、表单验证以及其他的实用功能。这款库在Java社区中广受欢迎,因为它提供了丰富的UI...
上次没有传完,这次将所有jar文件和源码打成zip包。...jgoodies-binding-2_2_1.zip jgoodies-common-1_1_1.zip jgoodies-forms-1_4_0.zip jgoodies-looks-2_4_0.zip jgoodies-validation-2_2_0.zip
**Java UI设计与JGoodies Looks & Feel** 在Java编程中,用户界面(UI)的设计是应用程序的关键组成部分,它直接影响到用户体验。Java Swing提供了一种跨平台的方式来创建图形用户界面,但其默认的LookAndFeel可能...
JGoodies Forms框架下的FormLayout为Swing提供了强大而灵活的布局解决方案,不仅简化了面板设计过程,还提高了代码的可读性和可维护性。对于追求高效、优雅界面设计的Java开发者而言,掌握FormLayout无疑是一项重要...
FormLayoutMaker 是一个所见即所得的工具,使您能够使用 JGoodies FormLayout 布局管理器轻松构建 Java Swing 布局。 非常适合那些讨厌 IDE 表单构建器但需要快速强大布局的人。 ...
**JGoodies Validation** 是一个基于Java的库,专门用于实现用户界面(UI)验证功能。这个库由JGoodies公司开发,旨在帮助开发者轻松创建符合设计模式的、具有强大验证能力的用户界面。JGoodies Validation的核心...
**JGoodies Common** 是一个Java用户界面设计库,它为开发者提供了丰富的工具和组件,以简化和增强Java应用程序的用户界面(UI)开发。这个库由JGoodies公司创建,旨在提供一种更加高效和优雅的方式来构建现代、美观...
**JGoodies Binding** 是一个Java用户界面设计库,它专注于数据绑定技术,使得开发者能够更轻松地在Java Swing组件和应用程序模型之间建立双向数据绑定。这个库是JGoodies系列库的一部分,由Karsten Lentzsch开发,...
2. 定义布局规则:使用`FormLayout`类创建布局,通过`ColumnSpec`和`RowSpec`定义列和行的规则。 3. 添加组件:将Swing组件添加到布局中,通过指定约束来确定其位置和大小。 4. 数据绑定:使用`BeanBinding`类将组件...
在UI组件方面,JGoodies Common库提供了自定义的布局管理器,如`FormLayout`,它允许开发者以表格的形式精确控制组件的位置和大小,从而实现更为美观和统一的界面设计。此外,库中还有诸如`BorderFactory`等辅助类,...