java网格包布局管理器
时间:2019-09-28
本文章向大家介绍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); } }
原文地址:https://www.cnblogs.com/TianLiang-2000/p/11603188.html
- java教程
- Java快速入门
- Java 开发环境配置
- Java基本语法
- Java 对象和类
- Java 基本数据类型
- Java 变量类型
- Java 修饰符
- Java 运算符
- Java 循环结构
- Java 分支结构
- Java Number类
- Java Character类
- Java String类
- Java StringBuffer和StringBuilder类
- Java 数组
- Java 日期时间
- Java 正则表达式
- Java 方法
- Java 流(Stream)、文件(File)和IO
- Java 异常处理
- Java 继承
- Java 重写(Override)与重载(Overload)
- Java 多态
- Java 抽象类
- Java 封装
- Java 接口
- Java 包(package)
- Java 数据结构
- Java 集合框架
- Java 泛型
- Java 序列化
- Java 网络编程
- Java 发送邮件
- Java 多线程编程
- Java Applet基础
- Java 文档注释
- Linux设置虚拟内存的教学与实战教程
- 详解Linux服务器状态、性能相关命令
- 【s3cmd】给s3cmd加点debug日志再编一个
- Linux获取当前脚本真实路径的方法
- 短视频商城源码,商城左侧菜单栏网页模板
- 谈一谈Linux系统重要的子目录问题
- Tensorflow 2.x Java api的maven包怎么找
- Linux上也有10个流行的Windows应用程序
- (译)SDL编程入门(14)动画精灵和VSync
- 在Ubuntu Linux上安装和使用Git和GitHub
- 10个好用的 HTML5 特性
- Linux下升级python和安装pip的详解
- Linux中使用top命令的技巧
- Linux中查找工具的友好替代方案
- 使用命令行检测Ubuntu版本方法