import java.awt.Color;
import java.awt.event.ActionListener;
import java.awt.event.ActionEvent;
import javax.swing.JFrame;
import javax.swing.JOptionPane;
import javax.swing.JButton;
import javax.swing.JPanel;
import javax.swing.BorderFactory;
import javax.swing.JTable;
import javax.swing.JComboBox;
import javax.swing.JScrollPane;
import javax.swing.table.AbstractTableModel;
import javax.swing.table.TableColumn;
import javax.swing.table.DefaultTableCellRenderer;
import javax.swing.table.TableModel;
import javax.swing.table.TableCellRenderer;
import javax.swing.DefaultCellEditor;
import java.util.List;
import java.util.ArrayList;
import java.util.Vector;
class Zippo extends JFrame implements ActionListener{
private JTable table;
private TableModel model;
private JScrollPane sp;
private String name[]={"删除","编号","密码","姓名","性别","年龄","注册日期","备注"};
private List<Object[]> array=new ArrayList<Object[]>();
private JComboBox comboBox = new JComboBox();
private JPanel panel=new JPanel();
private JButton bt=new JButton("加载");
public static void main(String args[]){
new Zippo();
}
Zippo(){
super("动态表");
setSize(450,400);
setLocation(250,170);
model=new AbstractTableModel(){
public int getColumnCount(){
return name.length;
}
public int getRowCount(){
return array.size();
}
public String getColumnName(int col){
return name[col];
}
public Object getValueAt(int row,int col){
return array.get(row)[col];
}
public boolean isCellEditable(int row,int col){
return true;
}
public Class getColumnClass(int c){
return getValueAt(0, c).getClass();
}
public void setValueAt(Object object,int row,int col){
Object date[]=new Object[table.getColumnCount()];
for(int i=0;i<table.getColumnCount();i++){
if(i==col){
date[i]=object;
}else{
date[i]=getValueAt(row,i);
}
}
array.set(row,date);
if((Boolean)date[0]==true){
int i=JOptionPane.showConfirmDialog(null,"你确定要删除此记录吗?","删除",JOptionPane.YES_NO_OPTION,JOptionPane.QUESTION_MESSAGE);
if(i==JOptionPane.YES_OPTION){
array.remove(row);
repaint();
}else{
date[0]=false;
}
}
}
};
addDate();
comboBox.addItem("男");
comboBox.addItem("女");
table=new JTable(model);
table.setRowSelectionAllowed(false);
table.setAutoResizeMode(JTable.AUTO_RESIZE_OFF);
sp=new JScrollPane(table);
add("Center",sp);
panel.add(bt);
bt.addActionListener(this);
add("South",panel);
TableColumn sex=table.getColumn("性别"); //在列名为“性别”的单元里加入下拉选框
sex.setPreferredWidth(40);
DefaultTableCellRenderer sexRend=new DefaultTableCellRenderer();
sex.setCellEditor(new DefaultCellEditor(comboBox));
sexRend.setToolTipText("请选择性别");
sexRend.setBackground(Color.pink);
sex.setCellRenderer(sexRend);
setVisible(true);
pack();
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); //JFrame默认关闭方式
}
public void addDate(){
Object[] date={Boolean.FALSE,new Integer(100000),"pmpmpoo07","孙劭堃","男","22","今天","就是这么拽!"};
array.add(date);
Object[] date1={Boolean.FALSE,new Integer(100000),"123123","张含韵","女","20","今天","就是这么拽!"};
array.add(date1);
Object[] date2={Boolean.FALSE,new Integer(100000),"pmpmpoo07","孙劭堃","男","22","今天","就是这么拽!"};
array.add(date2);
Object[] date3={Boolean.FALSE,new Integer(100000),"123123","张含韵","女","20","今天","就是这么拽!"};
array.add(date3);
}
public void actionPerformed(ActionEvent e){
Object[] date={Boolean.FALSE,new Integer(100000),"pmpmpoo07","孙劭堃","男","22","今天","就是这么拽!"};
array.add(date);
table.setVisible(false);
table.setVisible(true);
}
}