`
lippeng
  • 浏览: 450775 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

jgoodies FormLayout Demo

 
阅读更多

以前看过一点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);
    }
}
 

 

 

 

  • 大小: 4.1 KB
  • 大小: 7.1 KB
分享到:
评论

相关推荐

    JGoodies FormLayout

    JGoodies FormLayout:一个布局管理器。 被IntelliJ IDEA集成。 网站被踢出墙去了(莫名其妙)

    java swing 布局所需组件formlayout所需jar包 GUI FormLayout

    java swing 布局所需组件formlayout所需jar包 jgoodies-common-1.6.0 jgoodies-forms-1.7.2 本人在烽火期间,使用的就是FormLayout布局,简单易用、功能强大,适用于swing企业和感兴趣的Java可视化兴趣爱好者。如果...

    JGoodies look demo

    JGoodies Look and Feel 2.2.1 一个不错的Swing 外观组件. 里面有demo

    JFormDesigner 最新版本

    JFormDesigner完全支持JGoodies FormLayout , TableLayout , GridBagLayout ,和其他标准配置管理人员。先进的GridBagLayout支持允许规格的横向和纵向的差距(如TableLayout ) ,这使得设计的一种形式一致差距...

    JFormDesigner Eclipse、NetBeans等的开发插件

    JFormDesigner完全支持JGoodies FormLayout , TableLayout , GridBagLayout , 和其他标准配置管理人员。先进的GridBagLayout支持允许规格的横向和纵向的差距(如TableLayout ) , 这使得设计的一种形式一致差距...

    The JGoodies Forms Framework

    介绍 JGoodies FORM FRAMWORK 的不错的资料

    jgoodies全部jar包和源码下载

    上次没有传完,这次将所有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

    formlayoutmakerx-rc8.2.1.jar

    FormLayoutMaker 是一个所见即所得的工具,使您能够使用 JGoodies FormLayout 布局管理器轻松构建 Java Swing 布局。 非常适合那些讨厌 IDE 表单构建器但需要快速强大布局的人。 ...

    jgoodies最新免费版

    jgoodies最新免费版,由于官网不再提供免费版,上述资源是可以下载到的最新免费版,如有需要欢迎下载。

    jgoodies-looksJava Feel&look

    jgoodies-validation jgoodies-looks jgoodies-forms 上传真难,

    jgoodies looks & feel

    jgoodies的.jar包,jgoodies网站好像国内ip上不去,这里分享一下:)

    jgoodies源码jar包(Java)

    jgoodies-binding jgoodies-common jgoodies-forms jgoodies-looks jgoodies-validation

    JGoodies Validation

    JGoodies ::Java User Interface Design-->Libraries--> JGoodies Validation

    可以工作在中文环境下的jgoodies look and feel

    可以工作在中文环境下的jgoodies look and feel。jgoodies官方提供的包在中文环境下是没法运行的,都是乱码。我修改了源码,可以在中文环境下正常显示中文。

    JGoodies Binding

    JGoodies ::Java User Interface Design-->Libraries--> JGoodies Binding

    jgoodies-forms-1.8.0.jar

    官方jgoodies-forms-1.8.0.jar包,可直接导入到项目中使用

    JGoodies Common

    JGoodies ::Java User Interface Design-->Libraries--> JGoodies Common

    JGoodies Looks

    JGoodies ::Java User Interface Design-->Libraries--> JGoodies Looks

    jgoodies-forms-1.7.1.jar

    jgoodies swing Java 皮肤

    JGoodies Forms

    JGoodies ::Java User Interface Design-->Libraries--> JGoodies Forms

Global site tag (gtag.js) - Google Analytics