需求:
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(); } }