如何从JTable的多行中取值并将其赋值给一个变量?

我有一个表格(1列,多行),其中包含一个书名列表和一个按钮.什么是正确的选择监听器,如果我选择了表中的多行,当我按下按钮时,它将把所选行的值以连接的格式分配到一个变量中?

例如,如果我从表中选择了项目1到7,它将被分配到变量中。

String selectedBooks = item1 + item2 + item3...;

我将使用的值 selectedBooks 为以后的sqlite查询做准备。

谢谢你的帮助

解决方案:

使用 table.getSelectedRows() 将返回所选行的索引。然后我们使用 table.getValueAt(row,column) 方法来获取特定单元格的值。

一个小小的例子。

public class SelectedRowExample extends JFrame {
    public SelectedRowExample() {
        super("");
        setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

        DefaultTableModel model = new DefaultTableModel();
        model.addColumn("Column");
        model.addRow(new Object[] { "Hello" });
        model.addRow(new Object[] { "Stack" });
        model.addRow(new Object[] { "Overflow" });
        JTable table = new JTable(model);
        table.getSelectionModel().addListSelectionListener(e -> {
            if (e.getValueIsAdjusting()) {
                StringBuilder sb = new StringBuilder();
                for (int row : table.getSelectedRows()) {
                    sb.append(table.getValueAt(row, 0));
                }
                System.out.println(sb.toString());
            }
        });

        setLayout(new BorderLayout());
        add(table);

        setLocationByPlatform(true);
        pack();
    }

    public static void main(String[] args) {
        SwingUtilities.invokeLater(() -> new SelectedRowExample().setVisible(true));
    }
}

选择 “你好 “打印: Hello

选择 “Hello”& “World “打印: HelloWorld

Selecting all rows prints: HelloStackOverflow

给TA打赏
共{{data.count}}人
人已打赏
未分类

在Gatsby MD文件中注入HTML代码,以便显示。

2022-9-9 0:00:21

未分类

.NET Blazor在构建应用程序时出现MSB3073错误,但如何解决,删除Blazor.MonoRuntime.target中的行并不能使其生效。

2022-9-9 0:11:17

0 条回复 A文章作者 M管理员
    暂无讨论,说说你的看法吧
个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
搜索