簡體   English   中英

如何使整個JTable無法編輯

[英]How to make whole JTable uneditable

我想為完整的JTable設置setEditable(false),但是我不知道該怎么做。 我瀏覽了很多網站,但是到處都找到了這段代碼

DefaultTableModel model = new DefaultTableModel(6,7){
 public boolean isCellEditable(int row, int column)
 {
     return false;
 }
};

上面的代碼似乎特定的行和列是不可編輯的,但是如何使整個表不可編輯。

這是我的表代碼,數據來自MySQL數據庫-

GridBagConstraints gbc = new GridBagConstraints();
jbutton1=new JButton("Close");
setTitle("Customer List");

JPanel panel = new JPanel(new GridBagLayout());
this.getContentPane().add(panel);

String[] columnNames = {"Account No", "Customer Name", "Account Type", "Credit Limit"};

DefaultTableModel model = new DefaultTableModel();
model.setColumnIdentifiers(columnNames);

table = new JTable();
table.setModel(model); 
table.setAutoResizeMode(JTable.AUTO_RESIZE_ALL_COLUMNS);

table.setFillsViewportHeight(true);

JScrollPane scroll = new JScrollPane(table);
scroll.setHorizontalScrollBarPolicy(
JScrollPane.HORIZONTAL_SCROLLBAR_AS_NEEDED);
scroll.setVerticalScrollBarPolicy(
JScrollPane.VERTICAL_SCROLLBAR_AS_NEEDED); 

String accno= "";
String name= "";
String type = "";
String limit = "";
try
{
    Class.forName("com.mysql.jdbc.Driver");
    con = DriverManager.getConnection("jdbc:mysql://localhost:3306/banking_prj","root","");
    String sql = "select * from customer ORDER BY account_no";
    PreparedStatement ps = con.prepareStatement(sql);
    ResultSet rs = ps.executeQuery();
    while(rs.next())
    {
        accno = rs.getString(1);
        name = rs.getString(2);
        type = rs.getString(3);
        limit = Double.toString(rs.getDouble(4));
        model.addRow(new Object[]{accno, name, type, limit});
    }
}
catch(Exception ex)
{
    JOptionPane.showMessageDialog(null, ex.getMessage(),"Error",
    JOptionPane.ERROR_MESSAGE);
}

謝謝

public boolean isCellEditable(int row, int column) {
    return false;
}

上面的代碼似乎特定的行和列是不可編輯的,但是如何使整個表不可編輯。

無論row和column的值是什么,該方法都將返回false。 因此,對於所有行和所有列,相應的單元格都是不可編輯的,而這正是您想要的。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM