如何将JTable中某个可编辑单元的改编后的值即时保存

看看这个例子吧。 要想保存改变后的状态  注意它的setValueAt方法



import javax.swing.DefaultCellEditor;
import javax.swing.JComboBox;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.JTable;
import javax.swing.table.AbstractTableModel;
import javax.swing.table.DefaultTableCellRenderer;
import javax.swing.table.TableCellRenderer;
import javax.swing.table.TableColumn;
import java.awt.Component;
import java.awt.Dimension;
import java.awt.GridLayout;

/** 
 * TableRenderDemo is just like TableDemo, except that it
 * explicitly initializes column sizes and it uses a combo box
 * as an editor for the Sport column.
 */
public class TableRenderDemo extends JPanel {
    private boolean DEBUG = false;

    public TableRenderDemo() {
        super(new GridLayout(1,0));

        JTable table = new JTable(new MyTableModel());
        table.setPreferredScrollableViewportSize(new Dimension(500, 70));
        table.setFillsViewportHeight(true);

        //Create the scroll pane and add the table to it.
        JScrollPane scrollPane = new JScrollPane(table);

        //Set up column sizes.
        initColumnSizes(table);

        //Fiddle with the Sport column‘s cell editors/renderers.
        setUpSportColumn(table, table.getColumnModel().getColumn(2));

        //Add the scroll pane to this panel.
        add(scrollPane);
    }

    /*
     * This method picks good column sizes.
     * If all column heads are wider than the column‘s cells‘
     * contents, then you can just use column.sizeWidthToFit().
     */
    private void initColumnSizes(JTable table) {
        MyTableModel model = (MyTableModel)table.getModel();
        TableColumn column = null;
        Component comp = null;
        int headerWidth = 0;
        int cellWidth = 0;

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
要在JTable编辑数据并保存,可以按照以下步骤进行操作: 1. 创建JTable对象并设置TableModel。 ```java DefaultTableModel model = new DefaultTableModel(); JTable table = new JTable(model); ``` 2. 向TableModel添加数据。 ```java model.addRow(new Object[]{"John", "Doe", 25}); model.addRow(new Object[]{"Jane", "Doe", 30}); ``` 3. 设置JTable编辑模式为可编辑。 ```java table.setEditable(true); ``` 4. 添加一个按钮,用于保存数据。 ```java JButton saveButton = new JButton("Save"); saveButton.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { // 在此处编写保存数据的代码 } }); ``` 5. 在按钮的ActionListener编写保存数据的代码。可以使用TableModel的getValueAt()方法来获取单元,并将其保存到文件或数据库。 ```java public void actionPerformed(ActionEvent e) { for (int row = 0; row < model.getRowCount(); row++) { String firstName = model.getValueAt(row, 0).toString(); String lastName = model.getValueAt(row, 1).toString(); int age = Integer.parseInt(model.getValueAt(row, 2).toString()); // 在此处将数据保存到文件或数据库 } } ``` 6. 将按钮添加到容器,并显示窗口。 ```java JFrame frame = new JFrame(); frame.getContentPane().add(new JScrollPane(table), BorderLayout.CENTER); frame.getContentPane().add(saveButton, BorderLayout.SOUTH); frame.setSize(400, 300); frame.setVisible(true); ``` 以上就是在JTable编辑数据并保存的基本步骤。您可以根据需要进行修改和扩展。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值