如何编程按钮来取消/选择表中的所有行和列?

sg2wtvxw  于 2021-06-30  发布在  Java
关注(0)|答案(1)|浏览(413)

这是我的密码。我使用一个控制器,以使一切更干净。

public class ControladorModificarMiembros implements IControladorModificarMiembros{

private VentanaModificarMiembros ventana;

private List<MiembroEnGrupo> miembros = new ArrayList<>();

ControladorModificarMiembros()
{
    this.ventana = new VentanaModificarMiembros(this,null);  //Instancia la ventana
    this.ventana.setLocationRelativeTo(null);       //Centra la ventana
    this.ventana.getTablaMiembros().setModel(new ModeloTablaMiembros());     //Asignamos modelo a la tabla       

    ModeloTablaMiembros mta = (ModeloTablaMiembros) this.ventana.getTablaMiembros().getModel();

    IGestorAutores ga = GestorAutores.crear();
    List<MiembroEnGrupo> miembrosengrupo = new ArrayList<>();

    for(Autor g : ga.verAutores())
    {
        MiembroEnGrupo e = new MiembroEnGrupo(g,null);    
        miembrosengrupo.add(e);
    }

    mta.asignarMiembrosEnGrupo(miembrosengrupo);

    JComboBox comboRoles = new JComboBox();
    comboRoles.setModel(new ModeloComboRol());

    TableColumn tmpColumn = this.ventana.getTablaMiembros().getColumnModel().getColumn(1);
    tmpColumn.setCellEditor(new DefaultCellEditor(comboRoles));

    this.ventana.setVisible(true); //Makes it visible
}

@Override
public void btnTodosClic(ActionEvent evt) {
    ModeloTablaAutores mta = (ModeloTablaAutores) this.ventana.getTablaMiembros().getModel();
    mta.actualizar();

//在这里我必须编程jbutton,以便按下它并自动选择所有表

@Override
public void btnNingunoClic(ActionEvent evt) {

    ModeloTablaAutores mtg = (ModeloTablaAutores) this.ventana.getTablaMiembros().getModel();

//在这里我必须编程jbutton,它将允许取消选择已经选择的行

cfh9epnr

cfh9epnr1#

JTable 免费提供此功能。与 selectAll() 以及 clearSelection .
您所需要做的就是,在相应的 actionListener 你的纽扣。
演示片段:

public static void main(String[] args) {
    SwingUtilities.invokeLater(() -> {
        buildGui();
    });
}

private static void buildGui() {
    JFrame frame = new JFrame();
    String[] header = { "Data1", "Data2" };
    Object[][] data = new Object[][] { { "Entry1", "Entry2" }, { "Entry3", "Entry4" } };
    JTable table = new JTable(data, header);
    JScrollPane sp = new JScrollPane(table);

    JButton btnSelect = new JButton("Select All");
    // on button click of "SelectAll"
    btnSelect.addActionListener((event) -> table.selectAll());
    JButton btnUnselect = new JButton("Unselect All");
    // on button click of "Unselect All"
    btnUnselect.addActionListener((event) -> table.clearSelection());

    JPanel btnPanel = new JPanel();
    btnPanel.add(btnSelect);
    btnPanel.add(btnUnselect);

    frame.add(sp);
    frame.add(btnPanel, BorderLayout.SOUTH);
    frame.pack();
    frame.setVisible(true);
}

未选择任何内容:

按下“全选”键:

按“取消全选”后,返回1。

相关问题