java 网格布局管理器_java网格包布局管理器

package qwer;

import java.awt.Button;

import java.awt.Font;

import java.awt.GridBagConstraints;

import java.awt.GridBagLayout;

import java.awt.event.ActionEvent;

import java.awt.event.ActionListener;

import javax.swing.ButtonGroup;

import javax.swing.JCheckBox;

import javax.swing.JFrame;

import javax.swing.JLabel;

import javax.swing.JOptionPane;

import javax.swing.JRadioButton;

public class wenjuan {

public static void main(String[] args) {

JFrame jf=new JFrame();

jf.setSize(550,650);

jf.setLocation(550,100);

/**

* GridBagLayout(网格布布局):

* 允许网格中的组件大小各不相同,允许一个组件跨越一个或多个网格。

* 使用GridBagLayout的步骤:

* 1、创建GridBagLayout布局管理器,使容器采用该布局管理器:

* GridBagLayout layout=new GridBagLayout();

* jf.setLayout(layout);

* 2、创建GridBagConstraints对象(布局约束条件),并设置该对象的相关属性

* GridBagConstraints c=new GridBagConstraints();

* c.gridx=1;设置网格的左上角横向索引;

* c.gridy=;设置网格的左上角纵向索引;

* c.gridwidth=1;设置组件横向跨越网格;

* c.gridheight=1;设置组件纵向跨越网格;

* 3、调用GridBagLayout对象的setConstraints()方法建立GridBagConstraints对象和受控组件之间的联系。

* layout.setConstraints(ckb1,c);

* 4、向容器中添加组件。

* jf.add(ckb1);

*/

GridBagLayout layout=new GridBagLayout();

GridBagConstraints c=new GridBagConstraints();

jf.setLayout(layout);

/**

* fill的值:(组件填充网格方式)

* NONE:不改变组件大小

* HORIZONTAL:水平填充

* VERTICAL:垂直填充

* BOTH:水平,垂直都填充

*/

c.fill=GridBagConstraints.NONE;

c.gridwidth=GridBagConstraints.REMAINDER;

/**

* weightx,weighty:设置权重

* c.gridwidth=GridBagConstraints.REMAINDER;

* 声明当前组件为最后一个

* gridwidth=1:横向跨越1个方格

* gridheight=1:纵向跨越1个方格

* gridx,gridy:设置组件的横向,纵向索引。

*/

c.weightx=3;

c.weighty=1;

JLabel bq=new JLabel("问卷调查");

/**

* Font(字体)构造方法:

* public Font(Sring familyName,int style,int size);

* familyName:字体类型(宋体,...)

* style:字体风格(普通:Font.PLAIN;加粗:Font.BOLD;斜体:Font.ITALIC;粗斜体:Font.BOLD+Font.ITALIC)

* size:字体大小

*/

bq.setFont(new Font("华文仿宋",Font.PLAIN,30));

layout.setConstraints(bq,c);

jf.add(bq);

c.weightx=1;

c.weighty=1;

c.fill=GridBagConstraints.BOTH;

JLabel bq1=new JLabel("1、第一个多选:");

layout.setConstraints(bq1,c);

jf.add(bq1);

c.gridwidth=1;

/**

* 按钮有三类:JButton(普通按钮),JCheckBox(多选按钮),JRadioButton(单选按钮)

* Icon getIcon()和void setIcon(Icon,icon):设置或者获取按钮图标

* String getText()和void setText(String text):设置或者获取按钮文本

* void setEnable(boolean b):启用(b为true)或禁用(b为false)按钮

* boolean isSelected():返回按钮状态(trua为选中,false为未选中)

* setSelected(boolean b):设置按钮状态(b为trua选中,b为false未选中)

*/

final JCheckBox ckb1=new JCheckBox("第一个多选的第一个选项");

layout.setConstraints(ckb1,c);

jf.add(ckb1);

final JCheckBox ckb2=new JCheckBox("第一个多选的第二个选项");

layout.setConstraints(ckb2,c);

jf.add(ckb2);

c.gridwidth=GridBagConstraints.REMAINDER;

final JCheckBox ckb3=new JCheckBox("第一个多选的第三个选项");

layout.setConstraints(ckb3,c);

jf.add(ckb3);

JLabel bq2=new JLabel("2、第二个多选:");

layout.setConstraints(bq2,c);

jf.add(bq2);

c.gridwidth=1;

final JCheckBox ckb4=new JCheckBox("第二个多选的第一个选项");

layout.setConstraints(ckb4,c);

jf.add(ckb4);

final JCheckBox ckb5=new JCheckBox("第二个多选的第二个选项");

layout.setConstraints(ckb5,c);

jf.add(ckb5);

c.gridwidth=GridBagConstraints.REMAINDER;

final JCheckBox ckb6=new JCheckBox("第二个多选的第三个选项");

layout.setConstraints(ckb6,c);

jf.add(ckb6);

JLabel bq3=new JLabel("3、第一个单选:");

layout.setConstraints(bq3,c);

jf.add(bq3);

c.gridwidth=1;

/**

* ButtonGroup(单选框):

* 需要向其中添加JRadioButton(单选按钮)

* 在同一个单选框中的JRadioButton按钮只能选一个;

* 注:JRadioButton(单选按钮)需要添加两个地方:

* 第一个为ButtonGroup(单选框),添加在一个结构中

* 第二个为显示的地方,窗口或者容器

*/

ButtonGroup g1=new ButtonGroup();

final JRadioButton rdb1=new JRadioButton("第一个单选的第一个选项");

g1.add(rdb1);

layout.setConstraints(rdb1,c);

jf.add(rdb1);

final JRadioButton rdb2=new JRadioButton("第一个单选的第二个选项");

g1.add(rdb2);

layout.setConstraints(rdb2,c);

jf.add(rdb2);

c.gridwidth=GridBagConstraints.REMAINDER;

final JRadioButton rdb3=new JRadioButton("第一个单选的第三个选项");

g1.add(rdb3);

layout.setConstraints(rdb3,c);

jf.add(rdb3);

JLabel bq4=new JLabel("4、第二个单选:");

layout.setConstraints(bq4,c);

jf.add(bq4);

c.gridwidth=1;

ButtonGroup g2=new ButtonGroup();

final JRadioButton rdb4=new JRadioButton("第二个单选的第一个选项");

g2.add(rdb4);

layout.setConstraints(rdb4,c);

jf.add(rdb4);

final JRadioButton rdb5=new JRadioButton("第二个单选的第二个选项");

g2.add(rdb5);

layout.setConstraints(rdb5,c);

jf.add(rdb5);

c.gridwidth=GridBagConstraints.REMAINDER;

final JRadioButton rdb6=new JRadioButton("第二个单选的第三个选项");

g2.add(rdb6);

layout.setConstraints(rdb6,c);

jf.add(rdb6);

c.gridwidth=1;

c.weightx=1;

c.gridx=0;

c.fill=GridBagConstraints.NONE;

Button but1=new Button("提交");

layout.setConstraints(but1,c);

jf.add(but1);

c.gridx=2;

c.gridwidth=GridBagConstraints.REMAINDER;

Button but2=new Button("重置");

layout.setConstraints(but2,c);

jf.add(but2);

but1.addActionListener(new ActionListener(){

public void actionPerformed(ActionEvent arg0) {

int i=0;

if(ckb1.isSelected())

i++;

if(ckb2.isSelected())

i++;

if(ckb3.isSelected())

i++;

if(ckb4.isSelected())

i++;

if(ckb5.isSelected())

i++;

if(ckb6.isSelected())

i++;

if(rdb1.isSelected())

i+=2;

if(rdb4.isSelected())

i+=2;

JOptionPane.showMessageDialog(null,"你的得分为"+i+"分。");

}

});

but2.addActionListener(new ActionListener(){

public void actionPerformed(ActionEvent arg0) {

ckb1.setSelected(false);

ckb2.setSelected(false);

ckb3.setSelected(false);

ckb4.setSelected(false);

ckb5.setSelected(false);

ckb6.setSelected(false);

rdb1.setSelected(false);

rdb2.setSelected(false);

rdb3.setSelected(false);

rdb4.setSelected(false);

rdb5.setSelected(false);

rdb6.setSelected(false);

}

});

jf.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);//关闭窗口时程序关闭;

jf.setVisible(true);

}

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值