2015-04-12 40 views
0

當我單擊我的JTable上的特定行時,出現填充我的JTextfields的問題。當我在我的JTable中單擊一行時,JTextfields沒有填充它們各自的值。請幫忙。謝謝。將JTable行填充爲Java中的JTextFields從mysql

我的代碼:

scrollPane = new JScrollPane(); 
    scrollPane.addMouseListener(new MouseAdapter() { 
     @Override 
     public void mouseClicked(MouseEvent e) { 

      int row = table.getSelectedRow(); 
      String tbl_click = (table.getModel().getValueAt(row, 0).toString()); 

      try{ 
       String sql = "SELECT * FROM employee where EmployeeID = '"+tbl_click+"' "; 
       stt = con.prepareStatement(sql); 
       rs = stt.executeQuery(); 


       if(rs.next()){ 
        int ids = rs.getInt("EmployeeID"); 
        id.setText(String.valueOf(ids).trim()); 

        String fn = rs.getString("FirstName"); 
        fname.setText(fn); 

        String ln = rs.getString("LastName"); 
        lname.setText(ln); 
       } 

       stt.close(); 

      }catch(Exception e1){ 
       e1.printStackTrace(); 
      } 

     } 
    }); 
    scrollPane.setBounds(312, 277, 551, 246); 
    frame.getContentPane().add(scrollPane); 

    table = new JTable(); 
    scrollPane.setViewportView(table); 
    table.setModel(DbUtils.resultSetToTableModel(rs)); 
+0

1)爲了更好地提供幫助,請發佈[MCVE](http://stackoverflow.com/help/mcve)(最小完整可驗證示例)或[SSCCE](http://www.sscce.org/)(簡短,獨立,正確的例子)。硬編碼一些數據來替換數據庫。 2)Java GUI必須適用於不同的操作系統,屏幕尺寸,屏幕分辨率等。因此,它們不利於像素的完美佈局。請使用佈局管理器或[它們的組合](http://stackoverflow.com/a/5630271/418556)以及[white space]的佈局填充和邊框(http://stackoverflow.com/a/17874718/ 418556)。 –

+0

恩......你明白我的問題嗎? – yetin

+0

*「你明白我的問題嗎?」*我理解你的代碼問題(你忘了問一個問題)。只要我看到一個MCVE,我會進一步考慮一個答案。投票結束。 –

回答

1

MouseEvents像雨滴,他們告吹從頂部到底部組件層次結構,直到他們碰到了什麼東西正在監視他們,然後他們停下來。

您的問題的可能原因是JTable,它位於JScrollPane內將阻止JScrollPane從任何MouseEvents通知。

我在「猜測」您需要將MouseListener添加到JTable。實際上,我可能會使用ListSelectionListener,通過ListSelectionModel行,而不是

+0

是的..當我右鍵點擊我的JTable組件時,我用JScrollPane包圍它。現在,當我點擊添加事件處理程序的權利時,它只會引導我到JScrollPane事件處理程序。沒有選擇JTable MouseListener的選項。你有什麼建議? – yetin

+0

用手編碼 – MadProgrammer

+0

例如?給我一個樣本 – yetin