Java 如何使用JPOppMenu'禁用特定单元格;什么东西?

Java 如何使用JPOppMenu'禁用特定单元格;什么东西?,java,swing,jtable,mouseevent,jpopupmenu,Java,Swing,Jtable,Mouseevent,Jpopupmenu,我创建了一个简单的JTable,并希望在右键单击单元格并在JPOppMenu中选择选项后能够禁用该单元格,该选项带有一个将禁用所选单元格的JMenuItem,下面是我的鼠标捕捉器: private JPopupMenu popup; private JMenuItem one; table.addMouseListener(new MouseAdapter() { @Override public void mouseReleased(MouseEvent e) {

我创建了一个简单的JTable,并希望在右键单击单元格并在JPOppMenu中选择选项后能够禁用该单元格,该选项带有一个将禁用所选单元格的JMenuItem,下面是我的鼠标捕捉器:

private JPopupMenu popup;
private JMenuItem one;

table.addMouseListener(new MouseAdapter() {
    @Override
    public void mouseReleased(MouseEvent e) {
        int r = table.rowAtPoint(e.getPoint());
        if (r >= 0 && r < table.getRowCount()) {
            table.setRowSelectionInterval(r, r);
        } else {
            table.clearSelection();
        }
        int rowindex = table.getSelectedRow();
        if (rowindex < 0)
            return;
        if (e.isPopupTrigger() && e.getComponent() instanceof JTable) {
            int rowIndex = table.rowAtPoint(e.getPoint());
            int colIndex = table.columnAtPoint(e.getPoint());

            one = new JMenuItem("Disable this cell");
            popup = new JPopupMenu();
            popup.add(one);
            popup.show(e.getComponent(), e.getX(), e.getY());
        }
    }
});

但这是在创建JTable时禁用单元格,但我需要在创建JTable后禁用单元格。关于如何做到这一点,您有什么想法/线索吗?

您需要修改您的
表格模型
,为每个单元格所需的可编辑状态添加存储,例如
列表
。您的模型可以从
isCellEditable()
返回存储状态,您的鼠标处理程序可以在
表格模型中设置所需状态。您可能需要上述模型/视图转换方法。

您需要修改
表格模型
,为每个单元格所需的可编辑状态添加存储,例如
列表
。您的模型可以从
isCellEditable()
返回存储状态,您的鼠标处理程序可以在
表格模型中设置所需状态。您可能需要上述模型/视图转换方法

DefaultTableModel tab = new DefaultTableModel(data, columnNames) {
    @Override
    public boolean isCellEditable(int row, int column) {
        return false;
    }
};