java网格包布局管理器

匿名 (未验证) 提交于 2019-12-02 21:52:03
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);     } }

 

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!