首页 > 解决方案 > Java-如何在我的文本变量中保存 JTable 单元格

问题描述

我的 JFrame 中有一个 JTable,我想知道当我单击保存按钮时如何将已编辑的单元格保存在我的文本变量中。我只在按回车键+点击保存时编辑单元格为什么??????这是我的代码:

  public class TableSave extends JFrame   {

private JPanel contentPane;
private JTable table;   
private String text;
public TableSave() {
    setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    setBounds(100, 100, 450, 300);
    contentPane = new JPanel();
    contentPane.setBorder(new EmptyBorder(5, 5, 5, 5));
    setContentPane(contentPane);
    contentPane.setLayout(null);
    Object [][] date =
        {
                {"NAME ", ""},
                {"SURNAME ", ""},
                {"CITY", ""},
        };
    
    String [] column = {"DESCRIPTION","DATE"};
    table = new JTable(date,column);// my jtable 
    contentPane.add(table);
    table.setBounds(10, 11, 368, 146);      
    table.getModel().addTableModelListener(new TableModelListener() {       
        
        public void tableChanged(TableModelEvent e) {               
            
            TableModel model =  table.getModel(); // new model                      
            Object data = model.getValueAt(0, 1);
            text = (String) data;               
        }
    });     
    JButton save = new JButton("SAVE"); // my button save, in i do not press enter don't save the date
    save.addActionListener(new ActionListener() {
        public void actionPerformed(ActionEvent evt) {              
            text = (String) evt.toString();             
            text = (String) table.getValueAt(0, 1);
            System.out.println(text);
            System.exit(0);}
    });     
    save.setBounds(96, 190, 89, 23);
    add(save);
   }}

你能帮我吗

标签: javaswingjtable

解决方案


您对如何使用文本变量感到困惑。您正在将其设置为不同位置的所有不同事物,但仅使用保存按钮单击处理程序中的值,您也将在该处理程序中退出。

我之前已经说过,但构建 GUI 应用程序的正确起点是首先测试模型(搜索模型-视图-控制器)并使其正常工作。这意味着创建一个TableModel可以序列化为文本的(无论如何你想这样做)并首先通过编程彻底测试模型。一旦模型开始工作,添加 GUI 就很简单:只需将您的侦听器连接到现有功能即可。


推荐阅读