📄 tabledialog.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 + -