gpt4 book ai didi

java - 从 JTable 读取数据

转载 作者:行者123 更新时间:2023-12-02 06:14:41 25 4
gpt4 key购买 nike

我需要从 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);
}

最佳答案

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

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

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

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

关于java - 从 JTable 读取数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55879396/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com