第十一周—图形用户界面

来源:互联网 发布:青龙山精神病医院知乎 编辑:程序博客网 时间:2024/06/05 08:00
作业:编写一个JFrame窗口,要求如下:1. 在窗口的NORTH区放置一个JPanel面板。2. JPanel面板放置如下组件:(1) JLable标签,标签文本为“兴趣”,右边接着是三个JCheckBox多选按钮,选项分别是“羽毛球”、“乒乓球”、“唱歌”。可以多选。(2) JLabel标签,标签文本为“性别”,右边接着是两个JRadioButton按钮,选项分别是“男”、“女”。置成单选按钮,提示:使用ButtonGroup类 。(3) 兴趣标签及按钮放在第一行,性别标签及按钮放在第二行,分别借助两个行型Box容器安排这两行组件的位置,而两个行型Box容器放入JPanel面板中,要两行组件对齐的话,可以把JPanel面板设置两行一列的GridLayout布局。3. 窗口的CENTER区域放置一个JScrollPane容器,容器中放置一个JTextArea文本域。4. 当点击JCheckBox多选按钮和JRadioButton按钮时,如果是选中操作,则把选中项的文本显示在JTextArea文本域,每行显示一个选项。可以重复点击,每次点击都显示选中项。import java.awt.*;import javax.swing.*;import java.awt.event.*;public class PersonalInformation extends JFrame{    JPanel pl;    JLabel lbl1, lbl2;    JCheckBox cb1, cb2, cb3;    ButtonGroup bg;    JRadioButton rb1, rb2;    JScrollPane sp;    JTextArea ta;    public PersonalInformation(){        super("PersonalInformation");        Listener1 l1 = new Listener1();        lbl1=new JLabel("兴趣");        cb1 = new JCheckBox("羽毛球");        cb1.addItemListener(l1);        cb2 = new JCheckBox("乒乓球");        cb2.addItemListener(l1);        cb3 = new JCheckBox("唱歌");        cb3.addItemListener(l1);        Box boxH1 = Box.createHorizontalBox();        boxH1.add(Box.createHorizontalStrut(5));        boxH1.add(lbl1);        boxH1.add(Box.createHorizontalStrut(50));        boxH1.add(cb1);        boxH1.add(Box.createHorizontalStrut(5));        boxH1.add(cb2);        boxH1.add(Box.createHorizontalStrut(5));        boxH1.add(cb3);        Listener2 l2 = new Listener2();        lbl2=new JLabel("性别");        bg = new ButtonGroup();        rb1 = new JRadioButton("男");        rb1.addActionListener(l2);        rb2 = new JRadioButton("女");        rb2.addActionListener(l2);        bg.add(rb1);        bg.add(rb2);        Box boxH2 = Box.createHorizontalBox();        boxH2.add(Box.createHorizontalStrut(5));        boxH2.add(lbl2);        boxH2.add(Box.createHorizontalStrut(50));        boxH2.add(rb1);        boxH2.add(Box.createHorizontalStrut(5));        boxH2.add(rb2);        pl = new JPanel();        pl.setLayout(new GridLayout(2,1));        pl.add(boxH1);        pl.add(boxH2);        ta = new JTextArea(200, 300);        sp = new JScrollPane(ta);        Container contentPane = getContentPane();        contentPane.add(pl, BorderLayout.NORTH);        contentPane.add(sp, BorderLayout.CENTER);        setSize(400,300);        setVisible(true);        setDefaultCloseOperation(EXIT_ON_CLOSE);    }    public static void main(String args[]){        new PersonalInformation();    }    class Listener1 implements ItemListener{        public void itemStateChanged(ItemEvent e){            if(e.getSource()==cb1)                ta.append(cb1.getText()+"\n");            else if(e.getSource()==cb2)                ta.append(cb2.getText()+"\n");            else if(e.getSource()==cb3)                ta.append(cb3.getText()+"\n");        }    }    class Listener2 implements ActionListener{        public void actionPerformed(ActionEvent e){            if(e.getSource()==rb1)                ta.append(rb1.getText()+"\n");            else if(e.getSource()==rb2)                ta.append(rb2.getText()+"\n");        }    }}

这里写图片描述