图形用户界面1

来源:互联网 发布:阿国网络随笔博客 编辑:程序博客网 时间:2024/05/23 21:19

作业:编写一个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 java.awt.event.*;    import javax.swing.*;    public class EventTest extends JFrame{    //继承框架        JPanel panel;        JLabel label1,label2;        JCheckBox checkBox1,checkBox2,checkBox3;  //先声明面板        JRadioButton rButton1,rButton2;        Container contentPane;   //声明容器        JTextArea textArea;        JScrollPane scrollPane;        Box box1,box2;        public EventTest(){    //构造方法            super("第七章事件监听练习");            panel=new JPanel();  //再生成面板对象            contentPane=getContentPane();  //调用get方法获取容器对象            textArea=new JTextArea(9,26);  //文本区有两个参数            scrollPane=new JScrollPane(textArea);//文本区加入到滚动面板中            label1=new JLabel("兴趣");            label2=new JLabel("性别");            checkBox1=new JCheckBox("羽毛球");            checkBox2=new JCheckBox("乒乓球");            checkBox3=new JCheckBox("唱歌");            //使用ButtonGroup类实现JRadioButtton的单选            ButtonGroup group=new ButtonGroup();  //group对象            rButton1=new JRadioButton("男");            rButton2=new JRadioButton("女");            group.add(rButton1);             //单选按钮添加到group组            group.add(rButton2);                        box1=Box.createHorizontalBox();  //调用生成Box的方法            box1.add(label1);                           box1.add(checkBox1);            box1.add(checkBox2);              //往box中添加组件            box1.add(checkBox3);            box2=Box.createHorizontalBox();              box2.add(label2);                            box2.add(rButton1);            box2.add(rButton2);                        panel.add(box1);                //往面板中添加Box            panel.add(box2);            panel.setLayout(new GridLayout(2,1));                                         //往容器中添加面板和滚动面板            contentPane.add(panel, BorderLayout.NORTH);            contentPane.add(scrollPane,BorderLayout.CENTER);            //为事件源添加事件监听            checkBox1.addActionListener(new MyListenner());            checkBox2.addActionListener(new MyListenner());            checkBox3.addActionListener(new MyListenner());            rButton1.addActionListener(new MyListenner());            rButton2.addActionListener(new MyListenner());            //设置布局模式            //setLayout(new FlowLayout());            //设置窗体大小            setSize(400,300);            setVisible(true);            //设置用户不允许自行调整窗口大小            //setResizable(false);            //关闭窗体退出程序            setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);        }        public class MyListenner implements ActionListener{            public void actionPerformed(ActionEvent e) {                String s;                if(e.getSource() == checkBox1)                {                    if(checkBox1.isSelected() == true)                    {                        s = checkBox1.getText();                        textArea.append(s + "\n");                    }                }                else if(e.getSource() == checkBox2)                {                    if(checkBox2.isSelected() == true)                    {                        s = checkBox2.getText();                        textArea.append(s + "\n");                    }                }                else if(e.getSource() == checkBox3)                {                    if(checkBox3.isSelected() == true)                    {                        s = checkBox3.getText();                        textArea.append(s + "\n");                    }                }                else if(e.getSource() == rButton1)                {                    if(rButton1.isSelected() == true)                    {                        s = rButton1.getText();                        textArea.append(s + "\n");                    }                }                else if(e.getSource() == rButton2)                {                    if(rButton2.isSelected() == true)                    {                        s = rButton2.getText();                        textArea.append(s + "\n");                    }                }                            }        }        public static void main(String[] args) {            new EventTest();        }    }    

运行结果: