/*
2、编写一个JFrame窗口,要求如下:
(1)窗口中的NORTH区域中放置一个JPanel面板。
(2)JPanel面板从左到右依次放置如下组件:
①1个JLabel标签,标签的文本为”兴趣“。
②3个JCheckBox多选按钮,文本分别为”羽毛球“”乒乓球“”唱歌“。
③1个JLabel标签,标签的文本为”性别“。
④两个JRadioButton按钮,文本分别为”男“”女“。
(3)窗口的CENTER区域放置一个JScrollPane容器,容器中放置一个JTextArea文本域。
(4)当单击多选按钮和单选按钮时,会把选中按钮的文本显示在JTextArea文本域中。
*/

package com.company;

import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.util.EventListener;
import java.awt.*;
import javax.swing.*;

public class Task{
    public static void MyOperation(){
        JFrame f=new JFrame();
        f.setSize(400,350);
        f.setLocation(300,200);
        f.setLayout(new BorderLayout());
        f.setVisible(true);
        f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        JPanel p=new JPanel();
        p.setLayout(new FlowLayout());

        JLabel label=new JLabel("兴趣:",JLabel.CENTER);
        p.add(label);

        JCheckBox c1=new JCheckBox("羽毛球",false);
        p.add(c1);
        JCheckBox c2=new JCheckBox("乒乓球",false);
        p.add(c2);
        JCheckBox c3=new JCheckBox("唱歌",false);
        p.add(c3);

        JLabel label2=new JLabel("性别:",JLabel.CENTER);
        p.add(label2);
        ButtonGroup group=new ButtonGroup();  //定义一个ButtonGroup组件,将JRadioButton放进去,使得JRadioButton之间互斥(只能选一个)
        JRadioButton r1=new JRadioButton("男",false);
        JRadioButton r2=new JRadioButton("女",false);
        group.add(r1);
        group.add(r2);
        p.add(r1);
        p.add(r2);
        f.add(p,BorderLayout.PAGE_START);
        //窗口的CENTER区域放置一个JScrollPane容器,容器中放置一个JTextArea文本域。
        JTextArea showArea=new JTextArea(2,5);
        JScrollPane sp=new JScrollPane(showArea);

        //当单击多选按钮和单选按钮时,会把选中按钮的文本显示在JTextArea文本域中。
        //为多选框定义监听器
        ActionListener listener=new ActionListener(){

            @Override
            public void actionPerformed(ActionEvent e) {

                if(c1.isSelected())
                   showArea.setText(c1.getText());

                if(c2.isSelected())
                    showArea.setText(c2.getText());

                if(c3.isSelected())
                    showArea.setText(c3.getText());


            }
        };
        //为单选框定义监听器
        ActionListener listener2=new ActionListener(){
        public void actionPerformed(ActionEvent e) {
            if (r1.isSelected())
                showArea.setText(r1.getText());

            if (r2.isSelected())
                showArea.setText(r2.getText());
        }
        };
        c1.addActionListener(listener);
        c2.addActionListener(listener);
        c3.addActionListener(listener);
        r1.addActionListener(listener2);
        r2.addActionListener(listener2);
        f.add(sp,BorderLayout.CENTER);
    }
    public static void main(String[] args){
        SwingUtilities.invokeLater(Task::MyOperation);
    }
}

运行结果如下~
在这里插入图片描述

Logo

权威|前沿|技术|干货|国内首个API全生命周期开发者社区

更多推荐