⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 tablemodelexample.java

📁 本程序是有IBM开发的一个基于数据表格的组件,里面有相关的例子和DOC,本站资料仅为大家学习之用
💻 JAVA
字号:
package demo.hr;

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.JTable;
import javax.swing.table.AbstractTableModel;

/**
 * The TableModelExample uses the classical TableModel - what most GUI developers
 * use everyday - to model their tables.  Over 200 lines more than the TMF using TableModelFreeExample.
 * None of this code should look odd to any developer - it's standard TableModel
 * code, which now, after reading the TMF, seems far too lengthy and bloated.
 * @author MAbernethy
 */
public class TableModelExample implements ActionListener
{
	private JTable personalTable;
	private JTable financialTable;
	private JTable hireTable;
	private List candidates;
	private List employees;
	
	private HireTableModel hireTableModel;
	private PersonalTableModel personalTableModel;
	private FinancialTableModel financialTableModel;
	
	public TableModelExample(JTable hireTable, JTable personalTable, JTable financialTable, List listCandidates)
	{
		this.hireTable = hireTable;
		this.personalTable = personalTable;
		this.financialTable = financialTable;
		
		this.candidates = listCandidates;
		employees = new ArrayList();
		
		hireTableModel = new HireTableModel();
		hireTableModel.setData(candidates);
		
		personalTableModel = new PersonalTableModel();
		personalTableModel.setData(employees);
		
		financialTableModel = new FinancialTableModel();
		financialTableModel.setData(employees);
		
		hireTable.setModel(hireTableModel);
		personalTable.setModel(personalTableModel);
		financialTable.setModel(financialTableModel);
	}

	public void actionPerformed(ActionEvent e)
	{
		JButton b = (JButton)e.getSource();
		if (b.getText().equals("Hire"))
		{
			employees.add(candidates.remove(hireTable.getSelectedRow()));
			hireTableModel.fireTableDataChanged();
			personalTableModel.fireTableDataChanged();
			financialTableModel.fireTableDataChanged();
		}
		else
		{
			employees.remove(financialTable.getSelectedRow());	
			hireTableModel.fireTableDataChanged();
			personalTableModel.fireTableDataChanged();
			financialTableModel.fireTableDataChanged();
		}
	}
	
	private class HireTableModel extends AbstractTableModel
	{		
		private List data;
	
		public void setData(List data)
		{
			this.data = data;
		}
	
		public String getColumName(int col)
		{
			if (col == 0)
				return "First Name";
			else
				return "Last Name";
		}
	
		public Class getColumnClass(int col)
		{
			return String.class;
		}

		public int getRowCount()
		{
			return data.size();
		}

		public int getColumnCount()
		{
			return 2;
		}

		public Object getValueAt(int row, int col)
		{
			if (col == 0)
				return ((EmployeeVO)(data.get(row))).getFirstName();
			else
				return ((EmployeeVO)(data.get(row))).getLastName();
		}
		
		public void setValueAt(Object o, int row, int col)
		{
			if (col == 0)
				((EmployeeVO)(data.get(row))).setFirstName((String)o);
			else
				((EmployeeVO)(data.get(row))).setLastName((String)o);
		}
	}
	
	
	private class PersonalTableModel extends AbstractTableModel
	{
		private List data;
	
		public void setData(List data)
		{
			this.data = data;
		}
	
		public String getColumName(int col)
		{
			if (col == 0)
				return "First Name";
			else if (col == 1)
				return "Last Name";
			else if (col == 2)
				return "Street Address";
			else if (col == 3)
				return "State";
			else if (col == 4)
				return "Zip";
			else
				return "Married";
		}
	
		public Class getColumnClass(int col)
		{
			if (col == 0 || col == 1 || col == 2 || col == 3)
				return String.class;
			else if (col == 4)
				return Integer.class;
			else
				return Boolean.class;
		}

		public int getRowCount()
		{
			return data.size();
		}

		public int getColumnCount()
		{
			return 6;
		}

		public Object getValueAt(int row, int col)
		{
			if (col == 0)
				return ((EmployeeVO)(data.get(row))).getFirstName();
			else if (col == 1)
				return ((EmployeeVO)(data.get(row))).getLastName();
			else if (col == 2)
				return ((EmployeeVO)(data.get(row))).getAddress();
			else if (col == 3)
				return ((EmployeeVO)(data.get(row))).getState();
			else if (col == 4)
				return new Integer(((EmployeeVO)(data.get(row))).getZipCode());
			else
				return new Boolean(((EmployeeVO)(data.get(row))).isMarried());
		}
		
		public void setValueAt(Object o, int row, int col)
		{
			if (col == 0)
				((EmployeeVO)(data.get(row))).setFirstName((String)o);
			else if (col == 1)
				((EmployeeVO)(data.get(row))).setLastName((String)o);
			else if (col == 2)
				((EmployeeVO)(data.get(row))).setAddress((String)o);
			else if (col == 3)
				((EmployeeVO)(data.get(row))).setState((String)o);
			else if (col == 4)
			{
				int val = ((Integer)o).intValue();
				((EmployeeVO)(data.get(row))).setZipCode(val);
			}
			else
				((EmployeeVO)(data.get(row))).setMarried(((Boolean)o).booleanValue());
		}
	}
	
	private class FinancialTableModel extends AbstractTableModel
	{		
		private List data;
	
		public void setData(List data)
		{
			this.data = data;
		}
	
		public String getColumName(int col)
		{
			if (col == 0)
				return "First Name";
			else if (col == 1)
				return "Last Name";
			else if (col == 2)
				return "Band Level";
			else if (col == 3)
				return "Years of Service";
			else
				return "Salary";
		}
	
		public Class getColumnClass(int col)
		{
			if (col == 0 || col == 1)
				return String.class;
			else if (col == 2)
				return Integer.class;
			else
				return java.math.BigDecimal.class;
		}

		public int getRowCount()
		{
			return data.size();
		}

		public int getColumnCount()
		{
			return 5;
		}

		public Object getValueAt(int row, int col)
		{
			if (col == 0)
				return ((EmployeeVO)(data.get(row))).getFirstName();
			else if (col == 1)
				return ((EmployeeVO)(data.get(row))).getLastName();
			else if (col == 2)
				return new Integer(((EmployeeVO)(data.get(row))).getBandLevel());
			else if (col == 3)
				return new Integer(((EmployeeVO)(data.get(row))).getYearsService());
			else
				return ((EmployeeVO)(data.get(row))).getSalary();
		}
		
		public void setValueAt(Object o, int row, int col)
		{
			if (col == 0)
				((EmployeeVO)(data.get(row))).setFirstName((String)o);
			else if (col == 1)
				((EmployeeVO)(data.get(row))).setLastName((String)o);
			else if (col == 2)
			{
				int i = ((Integer)o).intValue();
				((EmployeeVO)(data.get(row))).setBandLevel(i);
			}
			else if (col == 3)
			{
				int i = ((Integer)o).intValue();
				((EmployeeVO)(data.get(row))).setYearsService(i);
			}
			else
				((EmployeeVO)(data.get(row))).setSalary((java.math.BigDecimal)o);
		}
	}

}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -