java - jtable点击显示信息不起作用

标签 java mysql sql swing jtable

我创建了一个 Jtabel tab_an,并使用以下代码从我的数据库填充它:

 private void miseajour_congan(){
    try{


String sql1 ="select c.matricule,c.nom,e.prénom,c.cong_ID,c.nature,c.statut_dem,c.date_d,c.date_f,c.solde_an,c.report_an,c.durée from congé c  where c.nature = 'annuel'";


   ps1=conn.prepareStatement(sql1);
   rs1=ps1.executeQuery();
   tab_an.setModel(DbUtils.resultSetToTableModel(rs1));

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

我还创建了一个带有一些 swing 组件(复选框、组合框、文本字段、Jdatechooser、Jspinner)的 Jpanel,并将 Jtable 添加到了 Jpanel。问题是,当我单击 Jtable 上的一行时,我希望显示表中包含的所有信息。为此,我使用此代码,但是当我单击时没有任何反应,也没有显示任何内容:

 private void tab_anMouseClicked(java.awt.event.MouseEvent evt) {                                    
   try {
    int ligne =tab_an.getSelectedRow();
    String Tab_clic=(tab_an.getModel().getValueAt(ligne,0).toString());
 String sql = "SELECT c.matricule,c.nom,c.prénom,c.cong_ID,c.nature,c.statut_dem,c.date_d,c.date_f,c.solde_an,c.report_an,c.durée "
         + "from congé c where  c.cong_ID='"+Tab_clic+"'  ";

   rs=ps.executeQuery(sql);
   while(rs.next())
   { 
    String n = rs.getString("nom");
    String p = rs.getString("prénom");
    StringBuilder  st = new StringBuilder();
    st.append(n).append("  ").append(p);
    String l = st.toString();
    empcombo.setSelectedItem(l);

   IDtxt1.setText(rs.getString("cong_ID"));

    matric_txt.setText(rs.getString("matricule"));

   ((JTextField)datede_chooz.getDateEditor().getUiComponent()).setText(rs.getString("date_d"));
  ((JTextField)datefinann_chooz.getDateEditor().getUiComponent()).setText(rs.getString("date_f"));  
  soldan_spin.setValue(rs.getInt("solde_an"));
  reportan_spin.setValue(rs.getInt("report_an"));

  String r =rs.getString("durée");
  String [] t = r.split(" ");
  int num = 0;
  if (t.length>=2)
  {num = Integer.parseInt(t[0]);
  duran_spin.setValue(num);
  joursemaine_combo.setSelectedItem(t[1]);}
  String x = rs.getString("statut_dem");
  if ( x.equals("approuvé"))
  {
      approve_check.setSelected(true);
  }

  else  if (x.equals("rejeté"))  
  {
       reject_check.setSelected(true);
  }
    else  if (x.equals("en attente") )

    {
        attente_check.setSelected(true);
    }

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

这是表congé的 DESC

nom varchar(255) YES NULL
prénom varchar(255) YES NULL
statut_dem varchar(100) YES NULL
cong_ID int(11) NO PRI NULL auto_increment
matricule int(11) NO MUL NULL
nature enum('annuel','compensateur','maladie','exceptionel') YES NULL
solde_an float YES NULL
report_an float YES NULL 
solde_comp float YES NULL
report_comp float YES NULL
solde_mal int(11) YES NULL
solde_excep int(11) YES NULL
cause_excep enum('mariage','décés') YES NULL
date_d varchar(100) YES NULL
date_f varchar(100) YES NULL
durée varchar(50) YES NULL

最佳答案

您需要一个选择性监听器而不是 MouseListener。

关于java - jtable点击显示信息不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32062101/

相关文章:

java - 我怎样才能让这个程序以不同的方式显示计数器?

php - MySql - 将字段枚举类型更改为 tinyint 时的奇怪行为

C# SqlConnection 异常 : Keyword not Supported 'Port'

java - 无法在 jooq 中使用 setobject 进行自定义绑定(bind)

java - 从另一个方法更改对象值

java - 非法的表达开始/对编码还没有信心欢迎帮助

Java - 设置特定单元格的背景颜色

php - MySQL和PHP中的空数据库?

php - 如何使用 PHP 和 XML 创建动态网页?

php - 在 php json 中显示所有记录时出错