public class JtableDemo4 extendsJFrame {
JtableDemoTbale2 defaultTableModel;/*** 取消按钮*/
privateJButton cancelBtn;//选中行索引
intselectedRow;public static voidmain(String[] args) {
JtableDemo4 demo= newJtableDemo4();
demo.setVisible(true);
}publicJtableDemo4() {this.setTitle("进项发票关联成本合同");this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);this.setSize(700, 450);//JFrame窗体居中
this.setLocationRelativeTo(null);
String src= "/image/logo.png"; //图片路径
Image image = null;try{
image= ImageIO.read(this.getClass().getResource(src));
}catch(IOException e) {
e.printStackTrace();
}//创建图片对象
this.setIconImage(image); //设置图标
final JScrollPane scrollPane = newJScrollPane();this.getContentPane().add(scrollPane, BorderLayout.CENTER);//设置JTable中的列名
Vector columnNames = new Vector();
columnNames.add("组织");
columnNames.add("合同编码");
columnNames.add("合同主键");
Vector> tableValues = new Vector>();for (int row = 1; row < 29; row++) {
Vector rowV = new Vector();
rowV.add("A" +row);
rowV.add("B" +row);
rowV.add("C" +row);
tableValues.add(rowV);
}//创建JTable (表格)
final JTable table = newJTable();//创建表格模型
defaultTableModel = newJtableDemoTbale2(tableValues, columnNames);final TableRowSorter sorter = new TableRowSorter(
defaultTableModel);
table.setRowSorter(sorter);//设置JTable的表格模型
table.setModel(defaultTableModel);
table.getTableHeader().setReorderingAllowed(false);/** 将JTable添加到JScrollPane中,*/scrollPane.setViewportView(table);//设置表格的选择模式---为单选模式
table.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);final JPanel panel = newJPanel();
panel.setBackground(Color.gray);this.getContentPane().add(panel, BorderLayout.SOUTH);final JTextField filterText = new JTextField(20);
JButton gl= new JButton("过滤");
JButton glcbht= new JButton("关联成本合同");
panel.add(filterText);
panel.add(gl);
panel.add(glcbht);/*** 点击JScrollPane滚动面板,取消选中的行*/scrollPane.addMouseListener(newMouseAdapter() {
@Overridepublic voidmouseClicked(MouseEvent e) {//取消掉选中行,但是选中行的索引值还是在的,没有取消掉
table.clearSelection();//显示选中行的索引值。
System.out.println("-----------------" +selectedRow);
}
});
gl.addActionListener(newActionListener() {public voidactionPerformed(ActionEvent e) {
String text=filterText.getText();if (text.length() == 0) {
sorter.setRowFilter(null);
}else{
sorter.setRowFilter(RowFilter.regexFilter(text));
}
}
});
glcbht.addActionListener(newActionListener() {
@Overridepublic voidactionPerformed(ActionEvent e) {//获取到JTable中选定行的---索引值
selectedRow =table.getSelectedRow();//获取到指定单元格的值
if(selectedRow < 0)return;int i =table.convertRowIndexToModel(table.getSelectedRow());
Object oa= defaultTableModel.getValueAt(i, 0);
Object ob= defaultTableModel.getValueAt(i, 1);
Object oc= defaultTableModel.getValueAt(i, 2);int row = selectedRow+1;
System.out.println("第" + row + "行," + "内容:" + oa + " "
+ ob + " " +oc);
}
});
}
}