www.pudn.com > student.rar > StudentManager.java
import java.io.*;
import javax.swing.*;
import java.util.Vector;
import java.awt.Toolkit;
import java.awt.Dimension;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.table.DefaultTableModel;
public class StudentManager
{//学生信息管理类
private JFrame frame = new JFrame();
private JPanel panel = new JPanel();
//菜单栏
private JMenuBar bar = new JMenuBar();
private JMenu file = new JMenu("文件(F)");
private JMenu manager = new JMenu("管理(M)");
//菜单项
private JMenuItem open = new JMenuItem();
private JMenuItem save = new JMenuItem();
private JMenuItem exit = new JMenuItem();
private JMenuItem insert = new JMenuItem();
private JMenuItem select = new JMenuItem();
private JMenuItem modify = new JMenuItem();
private JMenuItem delete = new JMenuItem();
//工具栏
private JToolBar tool = new JToolBar();
private Dimension dim = Toolkit.getDefaultToolkit().getScreenSize();
private ActionListener listener = new Listener();
//表格
private JTable table;
private JScrollPane scroll;
private static DefaultTableModel model;
private static Vector> data = new Vector>();
private Vector header = new Vector();
private String[] titles = {"学号","姓名","性别","年龄","专业","家庭住址"};
//创建四个界面的对象
private StudentSituation aInsert = new StudentSituation("学生信息录入");
private ModifySituation aModify = new ModifySituation("学生信息修改");
private Inquest aSelect = new Inquest("学生信息查询");
private Delete aDelete = new Delete("学生信息删除");
//文件读取保存
private File dataFile;
private FileReader reader;
private FileWriter writer;
private BufferedReader bufReader;
private JFileChooser chooser = new JFileChooser();
//宽度和高度
private static int WIDTH = 700;
private static int HEIGH = 500;
private void addItem(JMenu menu,JMenuItem item,String title,String stroke)
{//添加菜单项方法
menu.add(item);
item.setText(title);
item.setAccelerator(KeyStroke.getKeyStroke(stroke));
item.addActionListener(listener);
}
private class Listener implements ActionListener
{//监听器
String dataLine = "";//缓冲区
public void actionPerformed(ActionEvent e)
{
if(e.getActionCommand().equals("导入数据"))
{
chooser.setCurrentDirectory(new File("."));
int var = chooser.showOpenDialog(frame);
dataFile = chooser.getSelectedFile();
if(var == JFileChooser.APPROVE_OPTION)
{
data.clear();//首先清空表中原有的数据
open();
}
}
if(e.getActionCommand().equals("导出数据"))
{
chooser.setCurrentDirectory(new File("."));
int var = chooser.showSaveDialog(frame);
dataFile = chooser.getSelectedFile();
if(var == JFileChooser.APPROVE_OPTION)
{
save();
}
}
if(e.getActionCommand().equals("退出"))
{
System.exit(0);
}
if(e.getActionCommand().equals("信息录入"))
{
aInsert.show();
}
if(e.getActionCommand().equals("信息查询"))
{
aSelect.show();
}
if(e.getActionCommand().equals("信息修改"))
{
aModify.show();
}
if(e.getActionCommand().equals("信息删除"))
{
aDelete.show();
}
}
private void open()
{//打开数据
try
{
reader = new FileReader(dataFile);
bufReader = new BufferedReader(reader);
while((dataLine = bufReader.readLine())!=null)
{
model.addRow(dataLine.split(","));
}
reader.close();
bufReader.close();
}
catch(FileNotFoundException fe)
{
JOptionPane.showMessageDialog(frame,"文件未找到!",
"错误",JOptionPane.ERROR_MESSAGE);
}
catch(IOException ioe)
{
ioe.printStackTrace();
}
}
private void save()
{//保存数据
try
{
writer = new FileWriter(dataFile);
for(Vector vectorLine:data)
{
for(String meta:vectorLine)
{
writer.write(meta);
writer.write(",");
}
writer.write(System.getProperty("line.separator"));
}
writer.close();
JOptionPane.showMessageDialog(frame,"保存成功!");
}
catch(IOException ioe)
{
ioe.printStackTrace();
}
}
}
StudentManager(String title)
{//构造方法
file.setMnemonic('F');
addItem(file,open,"导入数据","ctrl O");
addItem(file,save,"导出数据","ctrl S");
file.addSeparator();
addItem(file,exit,"退出","alt X");
manager.setMnemonic('M');
addItem(manager,insert,"信息录入","F5");
addItem(manager,select,"信息查询","F6");
addItem(manager,modify,"信息修改","F7");
addItem(manager,delete,"信息删除","F8");
//表格初始化
for(String str:titles)
header.add(str);
model = new DefaultTableModel(data,header)
{
public boolean isCellEditable(int row,int col)
{
return false;
}
};
table = new JTable(model);
table.getColumnModel().getColumn(0).setPreferredWidth(20);
table.getColumnModel().getColumn(1).setPreferredWidth(40);
table.getColumnModel().getColumn(2).setPreferredWidth(20);
table.getColumnModel().getColumn(3).setPreferredWidth(20);
table.getColumnModel().getColumn(4).setPreferredWidth(80);
table.getColumnModel().getColumn(5).setPreferredWidth(200);
scroll = new JScrollPane(table);
scroll.setPreferredSize(new Dimension(WIDTH-10,HEIGH-60));
panel.add(scroll);
//添加菜单栏
bar.add(file);
bar.add(manager);
frame.setJMenuBar(bar);
//添加工具栏和面板
frame.add(tool,"North");
frame.add(panel,"Center");
//框架的属性设置
frame.setBounds((dim.width-WIDTH)/2,(dim.height-HEIGH)/2,WIDTH,HEIGH);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setTitle(title);
frame.setVisible(true);
}
public static DefaultTableModel getModel()
{
return model;
}
public static Vector> getData()
{
return data;
}
public static void main(String[] args)
{//main方法
StudentManager manager = new StudentManager("学生信息管理系统");
}
}