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

📄 tabledialog.java

📁 完整的JAVA工程
💻 JAVA
字号:
package employee;

import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import javax.swing.table.*;
import javax.swing.event.ListSelectionEvent;
import javax.swing.event.ListSelectionListener;

public class TableDialog extends JFrame implements ActionListener,ListSelectionListener{
	String eEid_str = "";
	GridBagLayout gridBagLayout1=new GridBagLayout();
	GridBagConstraints gridBagConstraints1=new GridBagConstraints();
	JScrollPane jScrollPane1=new JScrollPane();
	//表格的列头标题
	String []columnName={"职工编号","部门名称","职务名称","任职起始时间","任职终止时间","综合评定","办公电话","备注"};
	//表格的初始单元数据
	String [][]columnData=null;//={
		//{"3041601","人事部门","总经理","2005-3-2","2006-10-12","良","123456","还成吧"},
		//{"3041602","物流部门","工程师","2002-1-1","2006-10-20","优","098765","挺好的"},
	//};
	//作为新插入行的默认值
	final Object []oneRow={"","营销部门","职工","","","优","",""};
	//创建一个用来初始化和访问表格单元数据的DefaultTableModel对象
	DefaultTableModel dtm=new DefaultTableModel(columnData,columnName){
		//重载用来获得表格每列数据类型的getColumnClass方法,这样"领取状态"一列的复合框可显示出来
		public Class getColumnClass(int c){return getValueAt(0,c).getClass();}
		//若希望表格只读,可修改下面方法的返回值为false
		public boolean isCellEditable(int row,int col){return true;}
	};
	public boolean isCellEditable(int row,int col){return true;}
	//创建表格的行选择模式对象
	DefaultListSelectionModel dlsm=new DefaultListSelectionModel();
	JTable jTableView=new JTable(dtm);//利用dtm对象创建一个JTable表格
	EditPane editPane1=new EditPane();//创建一个布置了三个按钮的面板
	int current_row;//存放表格的当前行
	
	public TableDialog(){
		
		this.setTitle("修改职工公司信息");
		this.setSize(600,200);
		//设置运行时窗口的位置
		Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize();
		this.setLocation((screenSize.width - 600) / 2, 
			(screenSize.height -200 ) / 2);
		this.setDefaultCloseOperation(DISPOSE_ON_CLOSE);
		//创建用于表格"部门"一列的组合框
		JComboBox comboBox1=new JComboBox();
		comboBox1.addItem("研发部门");
		comboBox1.addItem("生产部门");
		comboBox1.addItem("策划部门");
		comboBox1.addItem("营销部门");
		comboBox1.addItem("财务部门");
		comboBox1.addItem("人事部门");
		comboBox1.addItem("物流部门");
		TableColumn departmentColumn=jTableView.getColumn("部门名称");
		//采用组合框为该列的编译器
		departmentColumn.setCellEditor(new DefaultCellEditor(comboBox1));
		//设置"部门名称"一列的背景色和提示文字条
		DefaultTableCellRenderer departmentColumnRenderer=new DefaultTableCellRenderer();
		departmentColumnRenderer.setBackground(Color.yellow);
		departmentColumnRenderer.setToolTipText("点击该列的组合框以选择部门");
		departmentColumn.setCellRenderer(departmentColumnRenderer);
		//创建用于表格"职务名称"一列的组合框
		JComboBox comboBox2=new JComboBox();
		comboBox2.addItem("总经理");
		comboBox2.addItem("部门经理");
		comboBox2.addItem("项目经理");
		comboBox2.addItem("主管");
		comboBox2.addItem("工程师");
		comboBox2.addItem("技术员");
		comboBox2.addItem("职工");
		comboBox2.addItem("临时工");
		TableColumn appointmentColumn=jTableView.getColumn("职务名称");
		//采用组合框为该列的编译器
		appointmentColumn.setCellEditor(new DefaultCellEditor(comboBox2));
		//设置"部门"一列的背景色和提示文字条
		DefaultTableCellRenderer appointmentColumnRenderer=new DefaultTableCellRenderer();
		appointmentColumnRenderer.setBackground(Color.magenta);
		appointmentColumnRenderer.setToolTipText("点击该列的组合框以选择职务");
		appointmentColumn.setCellRenderer(appointmentColumnRenderer);
		//创建用于表格"综合评定"一列的组合框
		JComboBox comboBox3=new JComboBox();
		comboBox3.addItem("优");
		comboBox3.addItem("良");
		comboBox3.addItem("中");
		comboBox3.addItem("差");
		TableColumn testColumn=jTableView.getColumn("综合评定");
		//采用组合框为该列的编译器
		testColumn.setCellEditor(new DefaultCellEditor(comboBox2));
		//设置"部门"一列的背景色和提示文字条
		DefaultTableCellRenderer testColumnRenderer=new DefaultTableCellRenderer();
		testColumnRenderer.setBackground(Color.orange);
		testColumnRenderer.setToolTipText("点击该列的组合框以选择综合评定");
		testColumn.setCellRenderer(testColumnRenderer);
		jTableView.setAutoResizeMode(JTable.AUTO_RESIZE_OFF);
		//在对话框中布置表格控件
		getContentPane().setLayout(gridBagLayout1);
		gridBagConstraints1.gridx=0;
		gridBagConstraints1.gridy=0;
		gridBagConstraints1.weightx=100;
		gridBagConstraints1.weighty=90;
		gridBagConstraints1.fill=GridBagConstraints.BOTH;
		gridBagLayout1.setConstraints(jScrollPane1,gridBagConstraints1);
		getContentPane().add(jScrollPane1);//添加滚动条面板
		jScrollPane1.setVerticalScrollBarPolicy(JScrollPane.VERTICAL_SCROLLBAR_ALWAYS);
		jScrollPane1.setHorizontalScrollBarPolicy(JScrollPane.HORIZONTAL_SCROLLBAR_AS_NEEDED);
		jScrollPane1.getViewport().setView(jTableView);//把表格插入滚动条面板
		//在对话框的下部添加布置了三个按钮的面板
		gridBagConstraints1.gridx=0;
		gridBagConstraints1.gridy=1;
		gridBagConstraints1.weightx=100;
		gridBagConstraints1.weighty=10;
		gridBagConstraints1.fill=GridBagConstraints.BOTH;
		gridBagLayout1.setConstraints(editPane1,gridBagConstraints1);
		getContentPane().add(editPane1);
		//为按钮添加鼠标单击监听器
		editPane1.jButton1.addActionListener(this);
		editPane1.jButton2.addActionListener(this);
		editPane1.jButton3.addActionListener(this);
		editPane1.jButton4.addActionListener(this);
		//为行选择模式添加行选择监听器
		dlsm.addListSelectionListener(this);
		jTableView.setSelectionModel(dlsm);//设置表格的行选择模式
	}
	public void actionPerformed(ActionEvent e){//按钮的事件处理代码
	    String[][] s;
	    Object srcObj=e.getSource();
	    if(srcObj==editPane1.jButton1){
	    	dtm.addRow(oneRow);//在表格底部中添加一个默认行
	    }
	    else if(srcObj==editPane1.jButton2)dtm.removeRow(jTableView.getSelectedRow());//删除表格当前行
	    else if(srcObj==editPane1.jButton3){//修改完纪录后保存到empcom表中
	    	
	    }
	    else if(srcObj==editPane1.jButton4){
	    	EmpInfoInputEeid eise = new EmpInfoInputEeid(this);
			eise.pack();
			eise.setVisible(true);
			try{
				eEid_str = eise.getEeid();
			}catch(Exception ex){
				JOptionPane.showMessageDialog(null, "没有查找到该职工编号!"); 
			}
	
			EmpBean searchEmp = new EmpBean();
			s = searchEmp.empAllSearch("eid",eEid_str);
			if(s == null){
				JOptionPane.showMessageDialog(null, "记录不存在!");
				jTableView.setEnabled(false);
				return;
			}
			else{
				columnData=s;
				
			}				
		}
	}
	public void valueChanged(ListSelectionEvent e){
		current_row=jTableView.getSelectedRow();
		
	}
	public static void main(String[] args){
		TableDialog tableDialog1=new TableDialog();
		tableDialog1.setVisible(true);
	}
}
class EditPane extends JPanel{
	FlowLayout flowLayout1=new FlowLayout();
	JButton jButton1=new JButton("插入一行");
	JButton jButton2=new JButton("删除一行");
	JButton jButton3=new JButton("修改");
	JButton jButton4=new JButton("查询职工编号");
	EditPane(){
		this.add(jButton1);
		this.add(jButton2);
		this.add(jButton3);
		this.add(jButton4);
	}
}

⌨️ 快捷键说明

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