0

JTable行を選択するために4列の「設定方法」を使用してJTableいますが、ユーザーは行の値を変更しないでください。

Jtable.setEnabled(false);

ユーザーが行を選択できないため、このステートメントは機能しません。

このコードをurの回答に置き換えるにはどうすればよいですか?

public void setModel()
{
    String[] colNames = {"Name","Email","Department","Status"};
    TableModel model = new DefaultTableModel(colNames,500);
    table.setModel(model);

    String insert = "select * from " + deptName;

    try
    {
        conn = ac.getConnection();
        stmt = conn.prepareStatement(insert);
        rs = stmt.executeQuery();
        int row = 0;   
        while(rs.next())
        {
            String[] rowData = new String[5];
            for(int i=1;i<=4;i++)
            {
                rowData[i-1] = rs.getString(i);
            }
            model.setValueAt(rowData[0], row, 0);
            model.setValueAt(rowData[1], row, 1);
            model.setValueAt(rowData[2], row, 2);                
            model.setValueAt(rowData[3], row, 3);                
            row++;  

        }
    }catch(SQLException s){}
    catch(ClassNotFoundException e)
        {e.printStackTrace();}
    finally
    {
        try
        {
            if(rs != null){rs.close();}
            if(stmt != null){stmt.close();}
            if(conn != null) {conn.close();}
        }
        catch(SQLException e){}
    }

}
4

4 に答える 4

1

テーブルモデルの作成方法に応じて、編集不可にしたいすべてのセルをオーバーライドしTableModel#isCellEditableて返す必要があります。false

詳細については、テーブルの使用方法をご覧ください。

于 2013-03-26T08:46:53.210 に答える
1

DefaultTableModelをこのように拡張します

private class NoCellEditTableModel extends DefaultTableModel{

    @Override
    public boolean isCellEditable(int row, int column) {
       //all cells false
       return false;
    }
}

次に、それをJTableに設定します

于 2013-03-26T08:48:02.970 に答える
1

isCellEditableテーブルのモデルを設定し、メソッドをオーバーライドします

jtable.setModel(new TableModel() {

    @Override
    public boolean isCellEditable(int rowIndex, int columnIndex) {
            return false;   
    }
});
于 2013-03-26T08:52:20.003 に答える
1

偏見のある私は、JXTableの使用を提案することに抵抗できません(SwingXプロジェクトでは、列ごととテーブルごとの両方で、ビューの編集可能性を構成するためのサポートが付属しています

// to disable editing for a particular column
table.getColumnExt(columnIndex).setEditable(false);
// to disable editing for the complete table
table.setEditable(false);
于 2013-03-26T12:03:18.547 に答える