java swing table 修改

package com.js;
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import javax.swing.table.*;

public class Java_7_Swing_JTable_Select extends JFrame{
    private DefaultTableModel tableModel;//定义表格模型对象
    private JTable table;// 定义表格对象
    private JTextField aTextField;
    private JTextField bTextField;

    public Java_7_Swing_JTable_Select(){
        super();
        setTitle("维护表格模型");
        setBounds(100,100,510,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_INTERVAL_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);
    }

    public static void main(String[] args) {
        // TODO 自动生成的方法存根
        Java_7_Swing_JTable_Select frame = new Java_7_Swing_JTable_Select();
        frame.setVisible(true);
    }

}

这里写图片描述

  • 2
    点赞
  • 20
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值