栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

如何读取文件,将数据放入JTable,然后修改单元格/删除行并将数据保存到文件中?

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

如何读取文件,将数据放入JTable,然后修改单元格/删除行并将数据保存到文件中?

但是如何编辑

您需要重写返回的

isCellEditable(...)
方法。
DefaultTableModel``true

使用GUI删除JT​​able中的某些行

您需要知道选择了哪一行,然后使用的

removeRow(...)
方法
DefaultTableModel
删除该行。

例如:

import java.awt.*;import java.awt.event.*;import java.util.Arrays;import java.util.ArrayList;import java.util.Collections;import java.util.List;import javax.swing.*;import javax.swing.table.*;public class ItemDeletion extends JPanel{    private JList<String> list;    private JTable table;    public ItemDeletion()    {        setLayout( new BorderLayout(5, 5) );        String[] items =        { "One", "Two", "Three", "Four", "Five", "Six", "Seven", "Eight", "Nine", "Ten"        };        //  Add the list        DefaultListModel<String> listModel = new DefaultListModel<String>();        for (String item: items) listModel.addElement( item );        list = new JList<String>( listModel );        JButton listDelete = new JButton( "Delete From List" );        listDelete.addActionListener( new ActionListener()        { @Override public void actionPerformed(ActionEvent e) {     DefaultListModel model = (DefaultListModel)list.getModel();     int row = list.getSelectedIndex();     while (row != -1)     {         model.removeElementAt( row );         row = list.getSelectedIndex();     } }        });        JPanel listPanel = new JPanel( new BorderLayout(5, 5) );        listPanel.add(new JScrollPane( list ), BorderLayout.CENTER);        listPanel.add(listDelete, BorderLayout.PAGE_END);        //  Add the table        DefaultTableModel tableModel = new DefaultTableModel(0, 1);        List<String> tableItems = Arrays.asList( items );        Collections.shuffle( tableItems );        for (String item: tableItems)        { System.out.println( item ); tableModel.addRow( new String[]{item} );        }        table = new JTable( tableModel );        table.setAutoCreateRowSorter(true);        ((DefaultRowSorter)table.getRowSorter()).toggleSortOrder(0);        JButton tableDelete = new JButton( "Delete From Table" );        tableDelete.addActionListener( new ActionListener()        { @Override public void actionPerformed(ActionEvent e) {     DefaultTableModel model = (DefaultTableModel)table.getModel();     int row = table.getSelectedRow();     while (row != -1)     {         int modelRow = table.convertRowIndexToModel( row );         model.removeRow( modelRow );         row = table.getSelectedRow();     } }        });        JPanel tablePanel = new JPanel( new BorderLayout(5, 5) );        tablePanel.add(new JScrollPane( table ), BorderLayout.CENTER);        tablePanel.add(tableDelete, BorderLayout.PAGE_END);        add(listPanel, BorderLayout.LINE_START);        add(tablePanel, BorderLayout.LINE_END);    }    private static void createAndShowGUI()    {        Jframe frame = new Jframe("Multiple Item Deletion");        frame.setDefaultCloseOperation(Jframe.EXIT_ON_CLOSE);        frame.add(new ItemDeletion(), BorderLayout.NORTH);        frame.setLocationByPlatform( true );        frame.pack();        frame.setVisible( true );    }    public static void main(String[] args)    {        EventQueue.invokeLater(new Runnable()        { public void run() {     createAndShowGUI(); }        });    }}

保存到文件?

您需要从中获取数据

DefaultTableModel
。您可以使用该
getValueAt(...)
方法检索每个值。

因此,您需要创建类似以下的代码:

for (each row);{    StringBuilder sb = new StringBuilder();    for ( each column)    {        Object data = model.getValueAt(...);        sb.append( data.toString() );    }    write the sb.toString() to the file}


转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/516411.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号