JTable 的TableModel (使用TMF框架只用一行代码)

简单实用:

使用JTable再也不用写TableModel了,只写一个XML文件另一行java代码就可以了.

一般读取数据都是这样:

List result=new ArrayList();

JavaBean b=new JavaBean();

b.setA("A");

result.add(b);

xml文件配置的是要显示的列,不需要显示的,只要把相应的XML代码删除就可以了.

 所用的包:

castor-0.9.5.3-xml.jar

commons-collections-3.1.jar

hr.jar

j2x.jar

xml.jar

package  com.andnnl;

/**
 * The EmployeeVO contains all the information about an employee.
 * 
@author MAbernethy
 
*/

public   class  EmployeeVO
{
    
private String firstName;
    
private String lastName;
    
private int bandLevel;
    
private int yearsService;
    
private java.math.BigDecimal salary;
    
private String address;
    
private String state;
    
private int zipCode;
    
private boolean married;

    
/**
     * Gets the address.
     * 
@return the address
     
*/
 
    
public String getAddress()
    
{
        
return address;
    }


    
/**
     * Gets the band level.
     * 
@return the band level
     
*/

    
public int getBandLevel()
    
{
        
return bandLevel;
    }


    
/**
     * Gets the first name.
     * 
@return the first name
     
*/

    
public String getFirstName()
    
{
        
return firstName;
    }


    
/**
     * Gets the last name.
     * 
@return the last name
     
*/

    
public String getLastName()
    
{
        
return lastName;
    }


    
/**
     * Gets the married status.
     * 
@return the married status
     
*/

    
public boolean isMarried()
    
{
        
return married;
    }


    
/**
     * Gets the salary.
     * 
@return the salary
     
*/

    
public java.math.BigDecimal getSalary()
    
{
        
return salary;
    }


    
/**
     * Gets the state.
     * 
@return the state
     
*/

    
public String getState()
    
{
        
return state;
    }


    
/**
     * Gets the years of service.
     * 
@return the years of service
     
*/

    
public int getYearsService()
    
{
        
return yearsService;
    }


    
/**
     * Gets the zip code
     * 
@return the zip code
     
*/

    
public int getZipCode()
    
{
        
return zipCode;
    }


    
/**
     * Sets the address.
     * 
@param string the address
     
*/

    
public void setAddress(String string)
    
{
        address 
= string;
    }


    
/**
     * Sets the band level
     * 
@param i the band level
     
*/

    
public void setBandLevel(int i)
    
{
        bandLevel 
= i;
    }


    
/**
     * Sets the first name
     * 
@param string the first name
     
*/

    
public void setFirstName(String string)
    
{
        firstName 
= string;
    }


    
/**
     * Sets the last name
     * 
@param string the last name
     
*/

    
public void setLastName(String string)
    
{
        lastName 
= string;
    }


    
/**
     * Sets the married status.
     * 
@param b the married status
     
*/

    
public void setMarried(boolean b)
    
{
        married 
= b;
    }


    
/**
     * Sets the salary.
     * 
@param decimal the salary
     
*/

    
public void setSalary(java.math.BigDecimal decimal)
    
{
        salary 
= decimal;
    }


    
/**
     * Sets the state.
     * 
@param string the state
     
*/

    
public void setState(String string)
    
{
        state 
= string;
    }


    
/**
     * Sets the years of service.
     * 
@param i the service
     
*/

    
public void setYearsService(int i)
    
{
        yearsService 
= i;
    }


    
/**
     * Sets the zip code.
     * 
@param i the zip code
     
*/

    
public void setZipCode(int i)
    
{
        zipCode 
= i;
    }


}

 

package  com.andnnl;

/**
 * The EmployeeGenerator randomly pieces together employee information to produce a random employee.
 * 
@author MAbernethy
 
*/

public   class  EmployeeGenerator
{
    
private static String[] states = {"TX""PA""NC""AK""AR""AZ""MD""SD""SC""FL""AL""CA""NV" };
    
private static String[] first = {"Allen""Carmelo""LeBron""Lamar""Tim""Carlos""Stephon""Emeka""Richard""Amare" };
    
private static String[] last = {"Holmes""Tomlinson""Portis""Alexander""Green""McAllister""James""Lewis""Faulk""Bennett""Henry""Davis""Dillon""Taylor""Johnson"};
    
private static String[] address = {"550 Elm St""1 Main Str""742 Evergreen Terrace""1600 Pennsylvania Dr""10 Downing Str""550 5th Ave" };
        
    
/**
     * Pieces together random information to form an EmployeeVO
     * 
@return the random Employee
     
*/

    
public static EmployeeVO getNewEmployee()
    
{
        EmployeeVO empVO 
= new EmployeeVO();
        empVO.setAddress(getRandomAddress());
        empVO.setBandLevel(getRandomBandLevel());
        empVO.setFirstName(getRandomFirstName());
        empVO.setLastName(getRandomLastName());
        empVO.setMarried(getRandomMarried());
        empVO.setSalary(getRandomSalary());
        empVO.setState(getRandomState());
        empVO.setYearsService(getRandomService());
        empVO.setZipCode(getRandomZip());
        
return empVO;
    }

    
    
private static String getRandomFirstName()
    
{
        
return first[(int)(Math.random() * first.length)];
    }

    
    
private static String getRandomLastName()
    
{
        
return last[(int)(Math.random() * last.length)];
    }

    
    
private static int getRandomBandLevel()
    
{
        
return (int)(Math.random() * 10);
    }

    
    
private static int getRandomService()
    
{
        
return (int)(Math.random() * 25);
    }

    
    
private static java.math.BigDecimal getRandomSalary()
    
{
        
return new java.math.BigDecimal(Math.random() * 100000).setScale(2, java.math.BigDecimal.ROUND_HALF_UP);
    }

    
    
private static String getRandomAddress()
    
{
        
return address[(int)(Math.random() * address.length)];
    }

    
    
private static String getRandomState()
    
{
        
return states[(int)(Math.random() * states.length)];
    }

    
    
private static int getRandomZip()
    
{
        
return (int)(Math.random() * 100000);
    }

    
    
private static boolean getRandomMarried()
    
{
        
return (((int)(Math.random()*2)) % 2 == 0);
    }


}

 

package  com.andnnl;

/**
 * The EmployeeGenerator randomly pieces together employee information to produce a random employee.
 * 
@author MAbernethy
 
*/

public   class  EmployeeGenerator2
{
    
private static String[] states = {"TX""PA""NC""AK""AR""AZ""MD""SD""SC""FL""AL""CA""NV" };
    
private static String[] first = {"Allen""Carmelo""LeBron""Lamar""Tim""Carlos""Stephon""Emeka""Richard""Amare" };
    
private static String[] last = {"Holmes""Tomlinson""Portis""Alexander""Green""McAllister""James""Lewis""Faulk""Bennett""Henry""Davis""Dillon""Taylor""Johnson"};
    
private static String[] address = {"550 Elm St""1 Main Str""742 Evergreen Terrace""1600 Pennsylvania Dr""10 Downing Str""550 5th Ave" };
        
    
/**
     * Pieces together random information to form an EmployeeVO
     * 
@return the random Employee
     
*/

    
public static EmployeeVO2 getNewEmployee()
    
{
        EmployeeVO2 empVO 
= new EmployeeVO2();
        empVO.setAddress(getRandomAddress());
        empVO.setBandLevel(getRandomBandLevel());
        empVO.setFirstName(getRandomFirstName());
        empVO.setLastName(getRandomLastName());
        empVO.setMarried(getRandomMarried());
        empVO.setSalary(getRandomSalary());
        empVO.setState(getRandomState());
        empVO.setYearsService(getRandomService());
        empVO.setZipCode(getRandomZip());
        
return empVO;
    }

    
    
private static String getRandomFirstName()
    
{
        
return first[(int)(Math.random() * first.length)];
    }

    
    
private static String getRandomLastName()
    
{
        
return last[(int)(Math.random() * last.length)];
    }

    
    
private static int getRandomBandLevel()
    
{
        
return (int)(Math.random() * 10);
    }

    
    
private static int getRandomService()
    
{
        
return (int)(Math.random() * 25);
    }

    
    
private static java.math.BigDecimal getRandomSalary()
    
{
        
return new java.math.BigDecimal(Math.random() * 100000).setScale(2, java.math.BigDecimal.ROUND_HALF_UP);
    }

    
    
private static String getRandomAddress()
    
{
        
return address[(int)(Math.random() * address.length)];
    }

    
    
private static String getRandomState()
    
{
        
return states[(int)(Math.random() * states.length)];
    }

    
    
private static int getRandomZip()
    
{
        
return (int)(Math.random() * 100000);
    }

    
    
private static boolean getRandomMarried()
    
{
        
return (((int)(Math.random()*2)) % 2 == 0);
    }


}

 

 

 

package  com.andnnl;

import  java.awt.BorderLayout;
import  java.awt.event.ActionEvent;
import  java.awt.event.ActionListener;
import  java.util.ArrayList;
import  java.util.List;
import  javax.swing.JButton;

import  javax.swing.JFrame;
import  javax.swing.JPanel;
import  javax.swing.JScrollPane;
import  javax.swing.JTable;

import  com.ibm.j2x.swing.util.TableUtilities;


public   class  TableModelTest  extends  JFrame  {
    
private List data;
    
private JTable table;
    
private int flag=0;
    
/**
     * Launch the application
     * 
@param args
     
*/

    
public static void main(String args[]) {
        
try {
            TableModelTest frame 
= new TableModelTest();
            frame.setVisible(
true);
        }
 catch (Exception e) {
            e.printStackTrace();
        }

    }


    
/**
     * Create the frame
     
*/

    
public TableModelTest() {
        
super();
        setBounds(
100100500375);
        setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

        
final JPanel panel = new JPanel();
        panel.setLayout(
new BorderLayout());
        getContentPane().add(panel, BorderLayout.CENTER);

        
final JScrollPane scrollPane = new JScrollPane();
        panel.add(scrollPane, BorderLayout.CENTER);

        table 
= new JTable();
        scrollPane.setViewportView(table);
        
//
        

        
final JButton button = new JButton();
        button.addActionListener(
new ActionListener() {
            
public void actionPerformed(ActionEvent e) {
                change();
            }

        }
);
        button.setText(
"New JButton");
        panel.add(button, BorderLayout.NORTH);

    }


    
protected void change() {
        
if(flag==0){
            data 
= new ArrayList();
            
for (int i=0; i<25; i++)
                data.add(EmployeeGenerator.getNewEmployee());
            TableUtilities.setViewToModel(
"resources/evil_hr_table.xml""Personal", table, data);
            flag
=1;
        }
else{
            data 
= new ArrayList();
            
for (int i=0; i<25; i++)
                data.add(EmployeeGenerator2.getNewEmployee());
            flag
=0;
            TableUtilities.setViewToModel(
"resources/evil_hr_table.xml""Hire", table, data);
        }

    }


}

 

 

package  com.andnnl;

/**
 * The EmployeeVO contains all the information about an employee.
 * 
@author MAbernethy
 
*/

public   class  EmployeeVO2
{
    
private String firstName;
    
private String lastName;
    
private int bandLevel;
    
private int yearsService;
    
private java.math.BigDecimal salary;
    
private String address;
    
private String state;
    
private int zipCode;
    
private boolean married;

    
/**
     * Gets the address.
     * 
@return the address
     
*/
 
    
public String getAddress()
    
{
        
return address;
    }


    
/**
     * Gets the band level.
     * 
@return the band level
     
*/

    
public int getBandLevel()
    
{
        
return bandLevel;
    }


    
/**
     * Gets the first name.
     * 
@return the first name
     
*/

    
public String getFirstName()
    
{
        
return firstName;
    }


    
/**
     * Gets the last name.
     * 
@return the last name
     
*/

    
public String getLastName()
    
{
        
return lastName;
    }


    
/**
     * Gets the married status.
     * 
@return the married status
     
*/

    
public boolean isMarried()
    
{
        
return married;
    }


    
/**
     * Gets the salary.
     * 
@return the salary
     
*/

    
public java.math.BigDecimal getSalary()
    
{
        
return salary;
    }


    
/**
     * Gets the state.
     * 
@return the state
     
*/

    
public String getState()
    
{
        
return state;
    }


    
/**
     * Gets the years of service.
     * 
@return the years of service
     
*/

    
public int getYearsService()
    
{
        
return yearsService;
    }


    
/**
     * Gets the zip code
     * 
@return the zip code
     
*/

    
public int getZipCode()
    
{
        
return zipCode;
    }


    
/**
     * Sets the address.
     * 
@param string the address
     
*/

    
public void setAddress(String string)
    
{
        address 
= string;
    }


    
/**
     * Sets the band level
     * 
@param i the band level
     
*/

    
public void setBandLevel(int i)
    
{
        bandLevel 
= i;
    }


    
/**
     * Sets the first name
     * 
@param string the first name
     
*/

    
public void setFirstName(String string)
    
{
        firstName 
= string;
    }


    
/**
     * Sets the last name
     * 
@param string the last name
     
*/

    
public void setLastName(String string)
    
{
        lastName 
= string;
    }


    
/**
     * Sets the married status.
     * 
@param b the married status
     
*/

    
public void setMarried(boolean b)
    
{
        married 
= b;
    }


    
/**
     * Sets the salary.
     * 
@param decimal the salary
     
*/

    
public void setSalary(java.math.BigDecimal decimal)
    
{
        salary 
= decimal;
    }


    
/**
     * Sets the state.
     * 
@param string the state
     
*/

    
public void setState(String string)
    
{
        state 
= string;
    }


    
/**
     * Sets the years of service.
     * 
@param i the service
     
*/

    
public void setYearsService(int i)
    
{
        yearsService 
= i;
    }


    
/**
     * Sets the zip code.
     * 
@param i the zip code
     
*/

    
public void setZipCode(int i)
    
{
        zipCode 
= i;
    }


}

evil_hr_table.xml

 

<? xml version="1.0" encoding="GB2312"  ?>
<!--  Put your Table column mappings here  -->
< data >

    
< model >
        
< className > demo.hr.TableModelFreeExample </ className >
        
< name > Hire </ name >
        
< column >
            
< name > 蛾眉 </ name >
            
< field > firstName </ field >
        
</ column >
        
< column >
            
< name > Last Name </ name >
            
< field > lastName </ field >
        
</ column >
    
</ model >

    
< model >
        
< className > demo.hr.TableModelFreeExample </ className >
        
< name > Personal </ name >
        
< column >
            
< name > 名称 </ name >
            
< field > firstName </ field >
        
</ column >
        
< column >
            
< name > Last Name </ name >
            
< field > lastName </ field >
        
</ column >
        
< column >
            
< name > Street Address </ name >
            
< field > address </ field >
        
</ column >
        
< column >
            
< name > State </ name >
            
< field > state </ field >
        
</ column >
        
< column >
            
< name > Zip </ name >
            
< field > zipCode </ field >
        
</ column >
        
< column >
            
< name > Married? </ name >
            
< field > married </ field >
        
</ column >
    
</ model >

    
< model >
        
< className > demo.hr.TableModelFreeExample </ className >
        
< name > Financial </ name >

        
< column >
            
< name > Last Name </ name >
            
< field > lastName </ field >
        
</ column >
        
< column >
            
< name > First Name </ name >
            
< field > firstName </ field >
        
</ column >
        
< column >
            
< name > Band Level </ name >
            
< field > bandLevel </ field >
        
</ column >
        
< column >
            
< name > Years of Service </ name >
            
< field > yearsService </ field >
        
</ column >
        
< column >
            
< name > Salary </ name >
            
< field > salary </ field >
        
</ column >
    
</ model >

</ data >

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值