第六次作业窗口JFrame的设计

本文介绍了一个使用Java Swing库构建的简单GUI应用程序实例。该程序包括单选按钮和复选框等交互元素,用户的选择会实时显示在一个文本区域中。通过这个例子,读者可以了解如何在Java中创建基本的图形用户界面。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

import java.awt.BorderLayout;
 import java.awt.GridLayout;
 import java.awt.event.ActionEvent;
 import java.awt.event.ActionListener;
 import javax.swing.Box;
 import javax.swing.ButtonGroup;
 import javax.swing.JCheckBox;
 import javax.swing.JFrame;
 import javax.swing.JLabel;
 import javax.swing.JPanel;
 import javax.swing.JRadioButton;
 import javax.swing.JScrollPane;
 import javax.swing.JTextArea;
public class test {
     public static void main(String[] args){
         MyJFrame myJFrame = new MyJFrame();
         myJFrame.setTitle("组件事件");
         myJFrame.setBounds(100, 100, 750, 450);
         myJFrame.setVisible(true);
     }
 }
 class MyJFrame extends JFrame implements ActionListener{
     JPanel mJPanel;
     JLabel mJLabel_xingQu,mJLabel_Sex;
     JCheckBox mJCheckBox_yuMaoQiu,mJCheckBox_pingPangQiu,mJCheckBox_changGe;
     JRadioButton mJRadioButton_man,mJRadioButton_woman;
     ButtonGroup group;//用来放男、女单选按钮的
     Box mBox1,mBox2;
     JScrollPane mJScrollPane;
     JTextArea mJTextArea;
     public MyJFrame(){
         // TODO Auto-generated constructor stub
         mJPanel = new JPanel();
         mJPanel.setLayout(new GridLayout(2,1));//为JPanel指定两行一列的布局
         mJTextArea = new JTextArea(15,60);
         mJScrollPane = new JScrollPane(mJTextArea);
         add(mJPanel,BorderLayout.NORTH);
         add(mJScrollPane, BorderLayout.CENTER);
         mJRadioButton_man = new JRadioButton("男");
         mJRadioButton_woman = new JRadioButton("女");
         group = new ButtonGroup();
         group.add(mJRadioButton_man);
         group.add(mJRadioButton_woman);
         mJLabel_xingQu = new JLabel("兴趣");
         mJLabel_Sex = new JLabel("性别");
         mBox1 = Box.createHorizontalBox();//创建横向的Box盒布局容器
         mBox2 = Box.createHorizontalBox();
         mJPanel.add(mBox1);
         mJPanel.add(mBox2);
         mJCheckBox_yuMaoQiu = new JCheckBox("羽毛球");
         mJCheckBox_pingPangQiu = new JCheckBox("乒乓球");
         mJCheckBox_changGe = new JCheckBox("唱歌");
         mBox1.add(mJLabel_xingQu);
         mBox1.add(Box.createHorizontalStrut(10));//设置间隔
         mBox1.add(mJCheckBox_yuMaoQiu);
         mBox1.add(mJCheckBox_pingPangQiu);
         mBox1.add(mJCheckBox_changGe);
         mBox2.add(mJLabel_Sex);
         mBox2.add(Box.createHorizontalStrut(10));//设置间隔
         mBox2.add(mJRadioButton_man);//这里不能直接add group!!
         mBox2.add(mJRadioButton_woman);

         //////////设置点击事件////////////////
         mJRadioButton_man.addActionListener(this);
         mJRadioButton_woman.addActionListener(this);
         mJCheckBox_yuMaoQiu.addActionListener(this);
         mJCheckBox_pingPangQiu.addActionListener(this);
         mJCheckBox_changGe.addActionListener(this);
     }
     @Override
     public void actionPerformed(ActionEvent e) {
         // TODO Auto-generated method stub
         if (e.getSource()==mJRadioButton_man) {
             if (mJRadioButton_man.isSelected()) {
                 //这里两条语句效果一样
                 mJTextArea.append(mJRadioButton_man.getText()+"\n");
//               mJTextArea.append(mJRadioButton_man.getActionCommand()+"\n");
             }
         }else if (e.getSource()==mJRadioButton_woman) {
             if (mJRadioButton_woman.isSelected()) {
                 mJTextArea.append(mJRadioButton_woman.getText()+"\n");
             }
         }else if (e.getSource()==mJCheckBox_yuMaoQiu) {
             if (mJCheckBox_yuMaoQiu.isSelected()) {
                 mJTextArea.append(mJCheckBox_yuMaoQiu.getText()+"\n");
             }
         }else if (e.getSource()==mJCheckBox_pingPangQiu) {
             if (mJCheckBox_pingPangQiu.isSelected()) {
                 mJTextArea.append(mJCheckBox_pingPangQiu.getText()+"\n");
             }
         }else if (e.getSource()==mJCheckBox_changGe) {
             if (mJCheckBox_changGe.isSelected()) {
                 mJTextArea.append(mJCheckBox_changGe.getText()+"\n");
             }
         }
     }
 }

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值