首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何使jtable在java中不可编辑?

如何使jtable在java中不可编辑?
EN

Stack Overflow用户
提问于 2012-05-03 21:26:06
回答 6查看 50.8K关注 0票数 11

我创建了一个将数据加载到JTable中的函数。除了此表中的所有单元格都是可编辑的之外,一切都正常。顺便说一句,我对表格模型使用了defaultTableModel。我在Netbeans IDE中执行此操作。请帮帮忙。下面是我的代码:

代码语言:javascript
复制
private void updateTable(String searchText){

    if(searchText != null)
        this._sqlCmd = this._sqlCmd + " WHERE "+columnCombo.getSelectedItem()+" LIKE '%"+searchText+"%'";
    jTable1.setSurrendersFocusOnKeystroke(true);
    table = (javax.swing.table.DefaultTableModel) jTable1.getModel();  

    try{
        table.setRowCount(0);
    }catch(Exception e){}

    try {
        ResultSet rs = conn.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_READ_ONLY).executeQuery(_sqlCmd);
        while (rs.next()){
            Object[] data = new Object[numOfCols];
            for(int i=0; i<data.length; i++){
                data[i] = rs.getObject(i+1);
            }
            table.addRow(data);
        }
        table.fireTableDataChanged();


    } catch (SQLException ex) {
        Logger.getLogger(FindContactGrid.class.getName()).log(Level.SEVERE, null, ex);
    } 
}
EN

回答 6

Stack Overflow用户

回答已采纳

发布于 2012-05-03 21:31:21

代码语言:javascript
复制
 private TableModel model = new DefaultTableModel(data, columnNames)
  {
    public boolean isCellEditable(int row, int column)
    {
      return false;//This causes all cells to be not editable
    }
  };
  private JTable table = new JTable(model);

编辑过的。如果在Netbeans IDE designer中执行此操作,请执行以下步骤:

  • 从导航窗格中选择JTable
  • 所在的窗体,展开JScrollPane,右键单击JTable,然后选择Customize Code,如下所示:

  • 在代码定制器上,选择第二个下拉列表,然后选择自定义属性。这使您能够在最后一个闭包);

之前编辑DefaultTableModel代码definition.

  • Now粘贴这个:{public boolean isCellEditable(int row, int column){return false;}}

您的最终设置应该如下所示:

  • 按ok保存-任务完成。

票数 34
EN

Stack Overflow用户

发布于 2012-05-03 21:38:39

如果您使用DefaultTableModel,您可以覆盖方法isCellEditable,并在构造图形用户界面时实现它:

代码语言:javascript
复制
table.setModel(new DefaultTableModel() {

    @Override
    public boolean isCellEditable(int row, int column) {
       return false;
    }
});
票数 9
EN

Stack Overflow用户

发布于 2014-08-28 00:30:40

使用Netbeans的另一种方式是可能的。如果您想继续使用默认的表格模型,就像OP提到的那样,如果您不想创建一个新的表格模型,那么就没有必要这样做。

属性选择“"properties"

  • Select”中的“JTable”字段,这将打开另一个属性,您可以在此处修改每个列的“”复选框字段。

不确定从哪个版本开始,但我使用的是Netbeans 7.2

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/10432385

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档