www.pudn.com > student.rar > Inquest.java
import javax.swing.*;
import javax.swing.table.DefaultTableModel;
import java.util.Vector;
import java.awt.Dimension;
import java.awt.Toolkit;
import java.awt.BorderLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
class Inquest
{//学生信息查询类
private JFrame frame = new JFrame();
private JSplitPane split;
private JPanel panel = new JPanel();
private SourcePanel sourcePanel = new SourcePanel();
private JPanel buttonPanel = new JPanel();
private JPanel tablePanel = new JPanel();
//表格
private JScrollPane scroll;
protected DefaultTableModel model;
protected JTable table;
protected Vector> data = new Vector>();
private Vector header = new Vector();
private String[] titles = {"学号","姓名","性别","年龄","专业","家庭住址"};
//按钮
private JButton inquest = new JButton();
private JButton cancel = new JButton();
private Dimension dim = Toolkit.getDefaultToolkit().getScreenSize();
private ActionListener listener = new Listener();
protected static boolean editable = false;//是否可以编辑
private static int WIDTH = 700;
private static int HEIGH = 360;
private class Listener implements ActionListener
{//监听器
public void actionPerformed(ActionEvent e)
{
if(e.getActionCommand().equals("查询"))
{
query();
}
if(e.getActionCommand().equals("取消"))
{
frame.setVisible(false);
}
}
private void query()
{//查询
data.clear();
model.fireTableDataChanged();
for(Vector dataLine:StudentManager.getData())
{
if(sourcePanel.getId().equals(dataLine.elementAt(0)))
model.addRow(dataLine);
else if(sourcePanel.getName().equals(dataLine.elementAt(1)))
model.addRow(dataLine);
else if(sourcePanel.getSex().equals(dataLine.elementAt(2)))
model.addRow(dataLine);
else if(sourcePanel.getAge().equals(dataLine.elementAt(3)))
model.addRow(dataLine);
else if(sourcePanel.getMajor().equals(dataLine.elementAt(4)))
model.addRow(dataLine);
else if(sourcePanel.getHome().equals(dataLine.elementAt(5)))
model.addRow(dataLine);
}
}
}
private void addButton(JButton button,String title)
{//添加按钮方法
button.setText(title);
button.addActionListener(listener);
buttonPanel.add(button);
}
public Inquest(String title)
{//构造方法
panel.setLayout(new BorderLayout());
panel.add(sourcePanel);
panel.add(buttonPanel,"South");
//添加按钮
addButton(inquest,"查询");
addButton(cancel,"取消");
//表格初始化
for(String str:titles)
header.add(str);
model = new DefaultTableModel(data,header)
{
public boolean isCellEditable(int row,int col)
{
return editable;
}
};//表格不允许编辑
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(60);
table.getColumnModel().getColumn(5).setPreferredWidth(100);
scroll = new JScrollPane(table);
scroll.setPreferredSize(new Dimension(470,330));
tablePanel.add(scroll);
//分割窗格
split = new JSplitPane(JSplitPane.HORIZONTAL_SPLIT,panel,tablePanel);
split.setDividerLocation(210);
split.setDividerSize(5);
frame.add(split);
frame.setBounds((dim.width-WIDTH)/2,(dim.height-HEIGH)/2,WIDTH,HEIGH);
frame.setResizable(false);
frame.setTitle(title);
}
public void resetButton(JButton button,ActionListener listener)
{//重置取消按钮方法
buttonPanel.remove(cancel);
buttonPanel.add(button);
buttonPanel.add(cancel);
button.addActionListener(listener);
}
public void show()
{//显示方法
data.addAll(StudentManager.getData());
editable = false;
frame.setVisible(true);
}
}