JTable_6

来源:互联网 发布:软件著作权维持费用 编辑:程序博客网 时间:2024/06/14 23:33


import java.awt.*;import java.awt.event.*;import javax.swing.*;import javax.swing.table.*;public class ExampleFrame_06 extends JFrame {private DefaultTableModel tableModel;// 定义表格模型对象private JTable table;// 定义表格对象private JTextField aTextField;private JTextField bTextField;public static void main(String args[]) {ExampleFrame_06 frame = new ExampleFrame_06();frame.setVisible(true);}public ExampleFrame_06() {super();setTitle("维护表格模型");setBounds(100, 100, 500, 375);setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);final JScrollPane scrollPane = new JScrollPane();getContentPane().add(scrollPane, BorderLayout.CENTER);String[] columnNames = { "A", "B" };// 定义表格列名数组String[][] tableValues = { { "A1", "B1" }, { "A2", "B2" },{ "A3", "B3" } };// 定义表格数据数组// 创建指定表格列名和表格数据的表格模型tableModel = new DefaultTableModel(tableValues, columnNames);table = new JTable(tableModel);// 创建指定表格模型的表格table.setRowSorter(new TableRowSorter(tableModel));// 设置表格的排序器// 设置表格的选择模式为单选table.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);// 为表格添加鼠标事件监听器table.addMouseListener(new MouseAdapter() {// 发生了点击事件public void mouseClicked(MouseEvent e) {// 获得被选中行的索引int selectedRow = table.getSelectedRow();// 从表格模型中获得指定单元格的值Object oa = tableModel.getValueAt(selectedRow, 0);// 从表格模型中获得指定单元格的值Object ob = tableModel.getValueAt(selectedRow, 1);aTextField.setText(oa.toString());// 将值赋值给文本框bTextField.setText(ob.toString());// 将值赋值给文本框}});scrollPane.setViewportView(table);final JPanel panel = new JPanel();getContentPane().add(panel, BorderLayout.SOUTH);panel.add(new JLabel("A:"));aTextField = new JTextField("A4", 10);panel.add(aTextField);panel.add(new JLabel("B:"));bTextField = new JTextField("B4", 10);panel.add(bTextField);final JButton addButton = new JButton("添加");addButton.addActionListener(new ActionListener() {public void actionPerformed(ActionEvent e) {String[] rowValues = { aTextField.getText(),bTextField.getText() };// 创建表格行数组tableModel.addRow(rowValues);// 向表格模型中添加一行int rowCount = table.getRowCount() + 1;aTextField.setText("A" + rowCount);bTextField.setText("B" + rowCount);}});panel.add(addButton);final JButton updButton = new JButton("修改");updButton.addActionListener(new ActionListener() {public void actionPerformed(ActionEvent e) {int selectedRow = table.getSelectedRow();// 获得被选中行的索引if (selectedRow != -1) {// 判断是否存在被选中行tableModel.setValueAt(aTextField.getText(),selectedRow, 0);// 修改表格模型当中的指定值tableModel.setValueAt(bTextField.getText(),selectedRow, 1);// 修改表格模型当中的指定值}}});panel.add(updButton);final JButton delButton = new JButton("删除");delButton.addActionListener(new ActionListener() {public void actionPerformed(ActionEvent e) {int selectedRow = table.getSelectedRow();// 获得被选中行的索引if (selectedRow != -1)// 判断是否存在被选中行// 从表格模型当中删除指定行tableModel.removeRow(selectedRow);}});panel.add(delButton);}}



原创粉丝点击