繁体   English   中英

在 Java Netbeans 中禁用 JTable 单元

[英]Disable JTable cell in Java Netbeans

我需要在 Java Netbeans 中的 Jtable 中的每个单元格中禁用双击编辑。 JTable 连接到 sqlite 数据库并显示数据库表记录。

 private void DisplayTable() {
    try{
        Class.forName("org.sqlite.JDBC");
        Connection conn=DriverManager.getConnection("jdbc:sqlite:clientrec.sqlite");
        String sql = "SELECT * FROM client";
        pst = conn.prepareStatement(sql);
        rs = pst.executeQuery();
        t1.setModel(DbUtils.resultSetToTableModel (rs));
        
        } 
    catch (Exception e){
        JOptionPane.showMessageDialog(null, e);
    } finally{
        try{
            rs.close();
            pst.close();
        }
        catch(Exception e){
            
        }
    }
    
}

我还为 jtable 创建了 onmouseclick 事件,以在 Jtextfields、combobox、jcalendar 中显示选择

      private void t1MouseClicked(java.awt.event.MouseEvent evt) {                                
            // TODO add your handling code here:
        DefaultTableModel model=(DefaultTableModel) t1.getModel();
        int number=t1.getSelectedRow();
        String tc=t1.getModel().getValueAt(number, 0).toString();
    try{
        Class.forName("org.sqlite.JDBC");
        Connection conn=DriverManager.getConnection("jdbc:sqlite:clientrec.sqlite");

        String sql = "SELECT * FROM client WHERE ID="+tc+"";
        pst = conn.prepareStatement(sql);
        rs = pst.executeQuery();
        if(rs.next()){
        String id=rs.getString("ID");        
        String fullname=rs.getString("FullName");
        String phone=rs.getString("Phone");
        String allergy=rs.getString("Allergy");
        String date=rs.getString("Date1");
        String budgetpayed=rs.getString("BudgetPayed");
        String totalbudget=rs.getString("TotalBudget");
        String budgetleft=rs.getString("BudgetLeft");
        String currency=rs.getString("Currency");
        String datea=rs.getString("Dateappointment");
        String description=rs.getString("Description");
        
        FullName.setText(fullname);
        Phone.setText(phone);
        Allergy.setText(allergy);
        ((JTextField)Date1.getDateEditor().getUiComponent()).setText(date);
        BudgetP.setText(budgetpayed);
        TBudget.setText(totalbudget);
        BudgetL.setText(budgetleft);
        Curr.setSelectedItem(currency);
        ((JTextField)Date2.getDateEditor().getUiComponent()).setText(datea);
        Desc.setText(description);
        }

    }catch (Exception ex){
        JOptionPane.showMessageDialog(null, ex);
    }
}

覆盖 JTable 的JTable isCellEditable(...)方法:

JTable table = new JTable(...)
{
    @Override
    public boolean isCellEditable(int row, int column)
    {
        return false;
    }
};

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM