Как вы берете значения из нескольких строк из JTable и присваиваете его переменной? - PullRequest
0 голосов
/ 24 апреля 2020

У меня есть таблица (1 столбец, несколько строк), содержащая список названий книг и кнопку. Каков правильный слушатель выбора, чтобы, если я выберу MULTIPLE строк в таблице, при нажатии кнопки значения выбранных строк в переменной в сцепленном формате присваивались?

пример, если я выбираю Item 1–7 из таблицы, она будет присвоена переменной как:

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

. Я буду использовать значения selectedBooks для запроса sqlite позже.

спасибо за ваша помощь

1 Ответ

0 голосов
/ 24 апреля 2020

Использование table.getSelectedRows() вернет индексы выбранных строк. Затем вы используете метод table.getValueAt(row,column), чтобы получить значение из указанной c ячейки.

Небольшой пример:

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

Выбор печати "Hello" и "World": HelloWorld

Выбор печати всех строк: HelloStackOverflow

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...