• 维护表格模型


    public class ExampleFrame_06 extends JFrame{
    
        private DefaultTableModel tableModel;
        private JTable table ;
        private JTextField aTextField;
        private JTextField bTextField;
        
        public ExampleFrame_06() {
            // TODO Auto-generated constructor stub
            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_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("B4",10));
            bTextField = new JTextField("B4",10);
            panel.add(bTextField);
            
            
            final JButton addbutton = new JButton("添加");
            addbutton.addActionListener(new ActionListener() {
                
                @Override
                public void actionPerformed(ActionEvent e) {
                    // TODO Auto-generated method stub
                    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 upButton = new JButton("修改");
            upButton.addActionListener(new ActionListener() {
                
                @Override
                public void actionPerformed(ActionEvent e) {
                    // TODO Auto-generated method stub
                    int selectedRow = table.getSelectedRow();
                    if(selectedRow != -1 ){
                        tableModel.setValueAt(aTextField.getText(), selectedRow, 0);
                        tableModel.setValueAt(bTextField.getText(), selectedRow, 1);
                    }
                }
            });
            panel.add(upButton);
            
            final JButton delButton = new JButton("删除");
            delButton.addActionListener(new ActionListener() {
                
                @Override
                public void actionPerformed(ActionEvent e) {
                    // TODO Auto-generated method stub
                    int selectedRow = table.getSelectedRow();
                    if(selectedRow != -1){
                        tableModel.removeRow(selectedRow);
                    }
                }
            });
            panel.add(delButton);
        }
        
        
        
        public static void main(String[] args) {
            // TODO Auto-generated method stub
            ExampleFrame_06 exampleFrame_06 = new ExampleFrame_06();
            exampleFrame_06.setVisible(true);
        }
    
    }
  • 相关阅读:
    [BZOJ3829][Poi2014]FarmCraft 贪心
    【BZOJ 3144】 [Hnoi2013]切糕 真·最小割
    【BZOJ1458】士兵占领 最大流的模板题
    【COGS 14】 [网络流24题] 搭配飞行员 网络流板子题
    【BZOJ 4832】 [Lydsy2017年4月月赛] 抵制克苏恩 期望概率dp
    【BZOJ4325】NOIP2015 斗地主 搜索+贪心
    【BZOJ 1409】 Password 数论(扩展欧拉+矩阵快速幂+快速幂)
    【NOIP模拟赛】天神下凡 动态开点线段树
    【NOIP模拟赛】藏宝图 最小生成树
    【NOIP模拟赛】黑红树 期望概率dp
  • 原文地址:https://www.cnblogs.com/dulute/p/10676124.html
Copyright © 2020-2023  润新知