小编rcn*_*npl的帖子

JTable中带有复选框的多行选择

我有一个带复选框的JTable作为列之一.我还在标题中有一个复选框来检查/取消选中所有.AFAIK JTable的默认行为是,如果选择新行,它将取消选择之前选择的所有行.但是我们可以通过复选框实现CTRL点击行为.保留以前选定的行.我面临的主要问题是使用复选框启用多个JTable行选择.

预期产出

检查第一行然后选择第一行,如果选中第三行,则选择第三行以及第一行(已经选中并选中)

实际输出

检查并选择第一行时,如果选择第三行,则取消选择先前选择的所有行,仅选择第三行.

我有一个示例代码,它模拟我希望实现与Add Another One按钮相同的方案,但有复选框选择.

import javax.swing.*;
import javax.swing.event.ListSelectionEvent;
import javax.swing.table.AbstractTableModel;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.event.ListSelectionListener;
import javax.swing.table.TableColumn;
import javax.swing.event.CellEditorListener;

public class JTableRowSelectProgramatically extends JPanel {

final JTable table = new JTable(new MyTableModel());

public JTableRowSelectProgramatically() {
    initializePanel();
}

private void initializePanel() {
    setLayout(new BorderLayout());
    setPreferredSize(new Dimension(475, 150));


    table.setFillsViewportHeight(true);
    JScrollPane pane = new JScrollPane(table);

    JLabel label2 = new JLabel("Row: ");
    final JTextField field2 = new JTextField(3);
    JButton add = new JButton("Select");

    table.setRowSelectionAllowed(true); …
Run Code Online (Sandbox Code Playgroud)

java swing jtable

5
推荐指数
1
解决办法
1万
查看次数

标签 统计

java ×1

jtable ×1

swing ×1