日期:2014-05-20 浏览次数:20905 次
import javax.swing.*;
import javax.swing.event.*;
import javax.swing.table.*;
import java.awt.*;
import java.awt.event.*;
import java.util.*;
import java.util.List;
public class JTableDemo4 extends JFrame implements ActionListener{
private JTable[] jTable=new JTable[3];
// private JButton bn1,bn2,bn3;
private JComboBox combobox=null;
private JPanel panel=null;
private MyModel[] model=new MyModel[3];
private JScrollPane s_pane=null;
private Container contentPane=null;
public JTableDemo4(String title){
super(title);
model[0]=new MyModel(2);
jTable[0]=new JTable(model[0]);
model[1]=new MyModel(4);
jTable[1]=new JTable(model[1]);
model[2]=new MyModel(6);
jTable[2]=new JTable(model[2]);
contentPane=this.getContentPane();
combobox=new JComboBox();
combobox.addItem("table1(2 users)");
combobox.addItem("table2(4 users)");
combobox.addItem("table3(6 users)");
combobox.addActionListener(this);
panel=new JPanel();
panel.add(combobox);
List<User> list1=new ArrayList<User>();
for(int i=0;i<3;i++){
User u=new User(i,"user"+i,"list1");
list1.add(u);
}
s_pane=new JScrollPane(jTable[0]);
contentPane.add(panel,BorderLayout.SOUTH);
contentPane.add(s_pane,BorderLayout.CENTER);
pack();
setVisible(true);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
public void actionPerformed(ActionEvent e) {
// TODO Auto-generated method stub
System.out.println("action performed");
int index=combobox.getSelectedIndex();
System.out.println("index:"+index);
jTable[0].setModel(model[index]);
jTable[0].updateUI();
// s_pane.removeAll();
// s_pane.add(jTable[index]);
//// s_pane=new JScrollPane();
//
// s_pane.validate();
// contentPane.validate();
// this.validate();
// this.repaint();
}
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
new JTableDemo4("MyDemo");
}
class MyModel extends AbstractTableModel{
private ArrayList<User> list;
private String [] title_name={"ID","用户名","密码"};
/**
* 初始化构造
*/
public MyModel(){
list=new ArrayList<User>();
for(int i=0;i<5;i++){
User user=new User(i,"user"+i,"user"+i);
this.list.add(user);
}
/*
* 这里数据结构当中加进去多少的数据,
* 虚拟机会利用getValueAt(int row,int col)方法
* 全部给取出显示
*/
}
public MyModel(int userNum){
list=new ArrayList<User>();
for(int i=0;i<userNum;i++){
User user=new User(i,"user"+i,"user"+i);
this.list.add(user);
}
/*
* 这里数据结构当中加进去多少的数据,
* 虚拟机会利用getValueAt(int row,int col)方法
* 全部给取出显示
*/
}
public void addRow(long id,String userName,String password){
User user=new User(id,userName,password);
list.add(user);
}
public void removeRaw(int row){
list.remove(row);
this.fireTableRowsDeleted(1,row+1);
}
public int getColumnCount() {
// TODO Auto-generated method stub
System.out.println("invoke method getColumnCount");
return title_name.length;
}
public String getColumnName(int col) {
System.out.println("invoke method getColumnName");
return title_name[col];
}
public int getRowCount() {
// TODO Auto-generated method stub
return list.size();
}
public Object getValueAt(int rowIndex, int columnIndex) {
// TODO Auto-generated method stub
//System.out.println("invoke method getValueAt");
User result=list.get(rowIndex);
return result.get(columnIndex);
}
public void setValueAt(Object value, int row, int col){
if(col==0)
list.get(row).setId((Long)value);
if(col==1)
list.get(row).setUserName((String)value);
if(col==2)
list.get(row).setPassword((String)value);
this.fireTableCellUpdated(row, col);
}
public boolean isCellEditable(int rowIndex, int columnIndex){
return true;
}
/**
* 返回数据类型
*/
public Class getColumnClass(int col) {
return getValueAt(0, col).getClass();
}
}
class User{
private long id;
private String userName;
private String password;
public User(){}
public User(long id,String userName,String password){
this.id=id;
this.userName=userName;
this.password=password;
}
public Object get(int i){
if(i==0)
return this.id;
if(i==1)
return this.userName;
if(i==2)
return this.password;
else
return null;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
public String getUserName() {
return userName;
}
public void setUserName(String userName) {
this.userName = userName;
}
public long getId() {
return id;
}
public void setId(long id) {
this.id = id;
}
}
}