【问题标题】:Read Data from JTable从 JTable 读取数据
【发布时间】:2019-04-27 23:30:53
【问题描述】:

我需要从 BookInfo 表中获取 BookID。 当我按下添加按钮时,预订窗口应该会弹出并在表中写入 BookID、发行日期和返回日期。 所以我需要将 BookID 作为对象传递给 Reservation。

我尝试创建图书信息的新实例,或者将字符串传递给预订...

//for BookInfo:
public void addRow(Object[] objToAdd)
    {
        DefaultTableModel model = (DefaultTableModel) table.getModel();
        model.addRow(objToAdd);
    }
...

        JButton btnAdd = new JButton("Add");
        btnAdd.setBorder(new BevelBorder(BevelBorder.RAISED, null, null, new Color(0, 0, 0), new Color(0, 0, 0)));
        btnAdd.setOpaque(true);
        btnAdd.setFont(new Font("American Typewriter", Font.PLAIN, 18));
        btnAdd.addActionListener(new ActionListener() {
            public void actionPerformed(ActionEvent e) {
                Reservation.reserve(/*Object bookID*/);
            }
        });
String[] columnNames = {" Book ID", " Title ", " Author", " Genre", " Date Published ", " Availability"}; // table layout

//for Reservation:
public void reserve(Object[] bookID)
    {
        String issuedDate = new SimpleDateFormat("yyyy.MM.dd").format(new Date());

        Calendar c = Calendar.getInstance();
        c.setTime(new Date()); 
        c.add(Calendar.DATE, 30); 
        String returnDate = new SimpleDateFormat("yyyy.MM.dd").format(c);


        String[]resInfo = {"Book ID" , issuedDate, returnDate};
        DefaultTableModel model = (DefaultTableModel) table.getModel();
        model.addRow(resInfo);
    }

【问题讨论】:

    标签: java algorithm swing user-interface jtable


    【解决方案1】:

    我不确定我是否了解您的用户界面是什么样的、您想要什么行为或您目前实现了什么。请尽量在您的描述中更清楚,并在提问时提供所有相关代码;它不能从创建 JButton 的时间和地点以及您在该范围内拥有哪些信息的代码中得出,这是回答您的问题所需的一些最关键的信息。

    假设您通过迭代表模型来呈现表并为每一行创建一个按钮,那么您已经在 actionListener 的范围内拥有 BookID 作为其中一列的值。您只需将其添加到您的侦听器代码中即可。

    类似的替代方法涉及使用按钮的 actionCommand 将字符串数据与按钮相关联。然后,您可以从调用 actionPerformed 方法的 ActionEvent 中检索此信息。 Here's one example。但我看不出有任何理由在这里使用这种方法。它只是增加了复杂性,上面的解决方案更简单自然。

    如果我对您如何创建表格的假设有误,您可以附加 mouseListener 而不是 actionListener,例如 here,这样您就可以从事件中获取行并访问相关列。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-08-02
      • 2017-07-27
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多