GroupLayout(分组bu'ju)

GroupLayout,分组布局管理器,将组件按层次分组,每个组可以包含任意数量的元素(Group、Component或Gap)

下面简单介绍下串行组与并行组

  • 串行组(sequential group):按顺时针指定方向(水平/垂直)逐个放置元素
  • 并行组(paraller group):沿指定方向(水平/垂直)并行排列元素,能够以四种方式对齐其子元素

Group的创建以及元素的添加:

JFrame jf=new JFrame("测试窗口");

jf.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);

//创建内容面板容器

JPanel panel=new JPanel();

//先创建分组布局,并关联容器

GroupLayout layout=new GroupLayout(panel)

//设置容器的布局

panel.setLayout(layout);

//水平串行(上下)

layout.setHorizontalGroup(layout.createSequentialGroup()
.addContainerGap().addGroup(layout.createParallelGroup(Alignment.LEADING)
.addGroup(layout.createSequentialGroup()
.addComponent(field).addComponent(button))
.addGroup(layout.createSequentialGroup()
.addComponent(field2).addComponent(button2))
.addGroup(layout.createSequentialGroup()
.addComponent(jScrollPane)
.addContainerGap(3, 5)
.addGroup(layout.createParallelGroup(Alignment.LEADING)
.addComponent(checkBox)
.addComponent(jPanel)
.addComponent(jLabel3)
.addComponent(box,100,150,200)
.addComponent(jLabel2)
.addComponent(comboBox)
.addComponent(jl1,200,200,200)
))
.addGroup(layout.createSequentialGroup()
.addComponent(jLabel).addContainerGap(0, Short.MAX_VALUE).addComponent(button4).addContainerGap(3, 5).addComponent(button3))
)
.addContainerGap());

layout.setVerticalGroup(layout.createSequentialGroup().addContainerGap()
.addGroup(layout.createParallelGroup(Alignment.LEADING)
.addComponent(field,25,25,25).addComponent(button,25,25,25))
.addContainerGap(3,5)
.addGroup(layout.createParallelGroup(Alignment.LEADING)
.addComponent(field2,25,25,25).addComponent(button2,25,25,25))
.addContainerGap(3,5)
.addGroup(layout.createParallelGroup(Alignment.LEADING)
.addComponent(jScrollPane).addGroup(layout.createSequentialGroup()
.addComponent(checkBox)
.addComponent(jPanel)
.addContainerGap(3,5)
.addComponent(jLabel3)
.addComponent(box,25,25,25)
.addContainerGap(3,5)
.addComponent(jLabel2)
.addContainerGap(3,5)
.addComponent(comboBox,25,25,25)
.addContainerGap(3,Short.MAX_VALUE)
.addComponent(jl1,200,200,200)
))
.addContainerGap(3,5)
.addGroup(layout.createParallelGroup(Alignment.LEADING)
.addComponent(jLabel,25,25,25).addComponent(button4,25,25,25).addComponent(button3,25,25,25))
.addContainerGap()
);

串行和并行根据不同的方向,元素的排列方式也不同 。

构建文本框使用的是JTextField控件

private   JTextField   field=new JTextField();

private JTextField  field2=new JTextField();

构建表格使用的是JTable 控件

private  JTable   jTable;

构建一个项的列表使用的是JComboBox控件

private  JComboBox<String> box=new JComboBox<>();

private JComboBox<String> comboBox=new JComboBox<>(new String[]{"最大值","中位数","平均值","最小值"});

构建可选按钮使用的是JCheckBox控件

JCheckBox checkBox1=new JCheckBox("编码基因")

JCheckBox checkBox2=new JCheckBox("长非编码RNA");

JCheckBox checkBox3=new JCheckBox("假基因");

JCheckBox  checkBox=new JCheckBox("不包含表头");

创建内容面板容器

private JPanel jPanel=new JPanel()

构建一部分的方法

public void initCheck(){

jPanel.setBorder(BorderFactory.createTitleBorder(BorderFactory.createLineBorder(Color.BLUE),"默认转换方式"));

GroupLayout layout=new GroupLayout(jPanel);//创建分组布局,并关联容器

jPanel.setLayout(layout)//设置容器的布局

layout.setHorizontalGroup(layout.createParallelGroup(Alignment.LEADING)

.addComponent(checkBox1,190,190,190)

.addComponent(checkBox2)

.addComponent(checkBox3));

layout.setVerticalGroup(layout.createSequentialGroup()

.addComponent(checkBox1)

.addComponent(checkBox2)

.addComponent(checkBox3)

);

public Main(){

init();

}

private Main getInstance(){

return this;}

private List<String> list

private void  createTable(Map<String.string> map)


  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值