需求:

1 设计两个界面
 a.注册界面 使用户可以输入   员工ID,姓名,性别,年龄,个人简介 等信息 点击注册按钮 打开第二个界面
  提示:1 按钮单击事件,参照昨天的 对话框 里面的 单击事件来做
        2 打开第二个界面 可以通过 实例化(new) 第二个界面的类
        3 数据使用二维数组存放
        4 第二个界面的构造方法 带一个二维数组的参数 用于 接受第一个界面 的 二维数组。
 b.显示界面,使用JTable显示 最新的全部员工信息
        使用构造方法 将二维数组 获取,然后 创建JTable并显示数据

 

代码:

1.注册界面

package com.niit.homework;

import java.awt.Color;
import java.awt.FlowLayout;
import java.awt.Graphics;
import java.awt.Image;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

import javax.swing.Box;
import javax.swing.ButtonGroup;
import javax.swing.ImageIcon;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JRadioButton;
import javax.swing.JTextArea;
import javax.swing.JTextField;

/**
 * @author: Annie
 * @date:2016年5月31日
 * @description:注册界面
 */
public class Register extends JFrame{

    public static void main(String[] args) {
        new Register();
    }

    String [][] arr = new  String [100][5];
    JLabel id,name,age, gender,introduction;
    ButtonGroup bg;
    JRadioButton female,male;
    JTextArea textArea;
    JTextField tf_id,tf_name,tf_age,jf_introduction;
    JButton btn_register;
    MyPanel jp;
    Box box_id,box_name,box_age,box_gender,box_introduction,baseBox;

    public Register() {

        setVisible(true);
        setSize(400, 450);
        setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        instantiateFunction();
        addFunction();
        

    }

    public void instantiateFunction(){
        jp = new MyPanel(new ImageIcon("./src/picture/pic16.jpg").getImage());
        baseBox = Box.createVerticalBox();
        box_id = Box.createHorizontalBox();
        box_name = Box.createHorizontalBox();
        box_age = Box.createHorizontalBox();
        box_gender = Box.createHorizontalBox();
        box_introduction = Box.createHorizontalBox();
        btn_register = new JButton("注册");    
        tf_id = new JTextField(10);
        tf_name = new JTextField(10);
        tf_age = new JTextField(10);
        bg = new ButtonGroup();
        female = new JRadioButton("女");
        male = new JRadioButton("男");
        textArea = new JTextArea(9,20);
        listenerFunction();

    }

    /**
     * 实现页面跳转和数组传递
     * */

    public void listenerFunction(){
        btn_register.addActionListener(new ActionListener() {

            @Override
            public void actionPerformed(ActionEvent e) {
                
                for (int i = 0; i < arr.length; i++) {
                    //先做一个判断,如果ID不为空,则传过去
                    if(arr[i][0]==null || arr[i][0].equals("")){
                        arr[i][0] =tf_id.getText();
                        arr[i][1] =tf_name.getText();
                        arr[i][2] =tf_age.getText();
                        
                        if(male.isSelected()){
                            arr[i][3] = male.getText();
                        }else{
                            arr[i][3] = female.getText();
                        }
                        arr[i][4] =textArea.getText();
                        
                        break;
                    }
                }
                new JTabelMsg(arr);

            }
        });
    }

    public void addFunction(){
        add(jp);
        box_id.add(new JLabel("ID:       "));
        box_id.add(tf_id);

        box_name.add(new JLabel("姓名:  "));
        box_name.add(tf_name);

        box_age.add(new JLabel("年龄:  "));
        box_age.add(tf_age);
        
        box_gender.add(new JLabel("性别:  "));
        bg.add(male);
        bg.add(male);
        box_gender.add(male);
        box_gender.add(female);    
         
        box_introduction.add(textArea);


        baseBox.add(Box.createVerticalStrut(15));
        baseBox.add(box_id);
        baseBox.add(Box.createVerticalStrut(15));
        baseBox.add(box_name);
        baseBox.add(Box.createVerticalStrut(15));
        baseBox.add(box_age);
        baseBox.add(Box.createVerticalStrut(15));
        baseBox.add(box_gender);
        baseBox.add(Box.createVerticalStrut(15));
        baseBox.add(new JLabel("个人简介:  "));
        baseBox.add(box_introduction);
        baseBox.add(Box.createVerticalStrut(15));
        baseBox.add(btn_register);
        jp.add(baseBox);
        
    }
}

class MyPanel extends JPanel{
    Image img;
    public MyPanel(Image img) {
        this.img = img;
    }
    @Override
    protected void paintComponent(Graphics g) {
        super.paintComponent(g);
        g.drawImage(img,0,0, this.getWidth(), this.getHeight(), this);
    }
}

2.显示学生信息界面:

/**
 * 
 */
package com.niit.homework;

import java.util.Vector;

import javax.swing.ImageIcon;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.JTable;
import javax.swing.table.DefaultTableModel;


/**
 * @author: Annie
 * @date:2016年5月31日
 * @description:存放学生信息界面
 */
public class JTabelMsg extends JFrame {

    
    JTable table;
    JPanel jp;
    //MyDate model;
    JTable tabel;
    ImageIcon img1,img2,img3;
    
    public JTabelMsg(String [][] arr) {
        System.out.println("跳过来了");
        setVisible(true);
        setSize(500, 500);
        setTitle("保存信息界面");
        setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        init(arr);

    }

    
    private void init(String [][] arr) {
        //标题数组
                String [] columns = {"ID","姓名","年龄","性别","个人简介"};

                //项目的相对路径./代表项目名称
                /*img1 = new  ImageIcon("./src/picture/dm.png");
                img2 = new  ImageIcon("./src/picture/pic12.jpg");
                img3 = new  ImageIcon("./src/picture/pic2.jpg");*/
                //model = new MyDate(arr,columns);
                jp = new JPanel();
                table = new JTable(arr,columns);//没有图片时的实例化
                //table = new JTable(model);//存在图片时的实例化
                table.setRowHeight(20);

                JScrollPane scrollPanel = new JScrollPane(table);
                jp.add(scrollPanel);
                add(jp);
        
    }

}

/*//显示一张图片
class MyDate extends DefaultTableModel{

    
    public MyDate(Object [][]data,Object[]names) {
        super(data,names);
    }
    @Override
    public Class<?> getColumnClass(int col) {
        Vector<?> v = (Vector<?>) dataVector.elementAt(0);
        return v.elementAt(col).getClass();
    }

}*/

3.程序入口的类:

package com.niit.homework;

/**
 * @author: Annie
 * @date:2016年5月31日
 * @description:程序入口界面
 */
public class TestMsg {

    
    public static void main(String[] args) {
        Register  register = new Register();

    }

}

 

posted on 2016-06-01 12:45  王铭霞  阅读(265)  评论(0编辑  收藏  举报