java之 ------ 图形界面(三)





import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import javax.swing.border.TitledBorder;

public class UserJFrame extends JFrame implements ActionListener 
{
    private int number=1;                                  //编号
    private JTextField text_number, text_name;             //编号、姓名文本行
    private JRadioButton radiob_male, radiob_female;       //性别按钮
    private Object cities[][];                             //存储多省的城市
    private JComboBox combox_province, combox_city;        //省份、城市组合框
    private JButton button_add;                            //添加按钮
    private JTextArea text_user;                           //文本区
   
    public UserJFrame(Object provinces[], Object cities[][])//参数指定省份和城市数组
    {
        super("输入用户信息");
        this.setSize(740, 300);
        this.setLocationRelativeTo(null);
        this.setDefaultCloseOperation(EXIT_ON_CLOSE);
        JPanel rightpanel=new JPanel(new GridLayout(6,1));//右面板
        JPanel leftpanel=new JPanel(new BorderLayout());//左面板
        leftpanel.setBorder(new TitledBorder("Person"));
        JSplitPane split=new JSplitPane(JSplitPane.HORIZONTAL_SPLIT,rightpanel,leftpanel);//水平分隔窗格,左右各添加一个面板
        split.setDividerLocation(140);//设置水平分隔条的位置
        split.setEnabled(false);//设置分隔条不能变动
        this.getContentPane().add(split);//框架内容窗格添加分隔窗格
        text_user = new JTextArea();
        text_user.setEditable(false);
        leftpanel.add(text_user);
        leftpanel.add(new JScrollPane(text_user));//设置文本编辑域可以滚动
        
        text_number = new JTextField("1");                 //编号文本行
        text_number.setEditable(false);                    //不可编辑,编号自动生成
        rightpanel.add(text_number);
        text_name = new JTextField("姓名");
        rightpanel.add(text_name);

        JPanel panel_rb=new JPanel(new GridLayout(1,2));   //单选按钮子面板,网格布局,1行2列
        rightpanel.add(panel_rb);
        ButtonGroup bgroup = new ButtonGroup();            //按钮组
        radiob_male = new JRadioButton("男",true);         //创建单选按钮,默认选中
        bgroup.add(radiob_male);                           //单选按钮添加到按钮组
        panel_rb.add(radiob_male);                         //单选按钮添加到子面板
        radiob_female = new JRadioButton("女");
        bgroup.add(radiob_female);
        panel_rb.add(radiob_female);

        this.cities = cities;
        combox_province = new JComboBox(provinces);        //省份组合框
        combox_province.setEditable(false);                 //设置组合框可编辑 
        combox_province.addActionListener(this);
        rightpanel.add(combox_province);
        combox_city = new JComboBox(cities[0]);            //城市组合框
        rightpanel.add(combox_city);
        
        button_add = new JButton("添加");
        button_add.addActionListener(this);
        rightpanel.add(button_add);
        this.setVisible(true);
    }

    public void actionPerformed(ActionEvent e)             //单击事件处理方法
    {
        if (e.getSource()==combox_province)                //在组合框的下拉列表中选择数据项时
        {
            int i=combox_province.getSelectedIndex();      //省份组合框当前选中项序号
            combox_city.removeAllItems();                  //清除地区组合框中原所有内容
            for (int j=0; j<this.cities[i].length; j++)
                combox_city.addItem(this.cities[i][j]);    //地区组合框添加数据项
        }
    
        if (e.getSource() == button_add)                   //单击按钮
        {
            String aline=number+", "+text_name.getText();
            if (radiob_male.isSelected())                  //指定单选按钮选中时
                aline += ", "+radiob_male.getText();       //获得单选按钮表示的性别字符串 
            if (radiob_female.isSelected())
                aline += ", "+radiob_female.getText();
            aline += ", "+combox_province.getSelectedItem(); //获得组合框选中项的字符串
            aline += ", "+combox_city.getSelectedItem();
            text_user.append(aline+"\n");                  //文本区添加一行字符串
            this.number++;                                 //编号自动加1
            text_number.setText(""+this.number);
            text_name.setText("姓名");
        }
    }
    
    public static void main(String arg[])
    {
        Object provinces[]={"江苏省", "浙江省"};
        Object cities[][]={{"南京市","苏州市","无锡市"}, {"杭州市","宁波市","温州市"}};
        new UserJFrame(provinces, cities);
    }
}        



  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值