Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/392.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
java中的事件鼠标单击无法填充文本字段_Java_Swing - Fatal编程技术网

java中的事件鼠标单击无法填充文本字段

java中的事件鼠标单击无法填充文本字段,java,swing,Java,Swing,我正在用netbeans制作gui。我右键单击JTable,为鼠标单击添加事件侦听器。我将代码添加到新方法中。为了我的生命,当我点击JTable时,我没有收到任何错误。 有没有关于我做错了什么或如何修复的想法?如果您需要查看更多我的代码,请告诉我。除了与数据库的连接之外,所有内容都在驱动程序类中运行 我把我的程序移到eclipse上,以便更容易地排除故障 private void tableDisplayMouseClicked(java.awt.event.MouseEvent evt

我正在用netbeans制作gui。我右键单击
JTable
,为鼠标单击添加事件侦听器。我将代码添加到新方法中。为了我的生命,当我点击
JTable
时,我没有收到任何错误。 有没有关于我做错了什么或如何修复的想法?如果您需要查看更多我的代码,请告诉我。除了与数据库的连接之外,所有内容都在驱动程序类中运行

我把我的程序移到eclipse上,以便更容易地排除故障

    private void tableDisplayMouseClicked(java.awt.event.MouseEvent evt) {                                          

   try {
       int row = tableDisplay.getSelectedRow();
       String tableClick = (tableDisplay.getModel().getValueAt(row, 1).toString());
       String sql = " select * from contact where id = ' " + tableClick + " ' ";
       pst = conn.prepareStatement(sql);
   rs = pst.executeQuery();
       if(rs.next()) {
            System.out.println("hey dude this method is being called.");   
           String add2 = rs.getString("Business_Name");
           fieldBN.setText(add2);   
           String add3 = rs.getString("First_Name");
           fieldFN.setText(add3);   
           String add4 = rs.getString("Last_Name");
           fieldLN.setText(add4);   
           String add5 = rs.getString("Phone");
           fieldP.setText(add5);   
           String add6 = rs.getString("Email");
           fieldE.setText(add6);   
           String add7 = rs.getString("Address_Line_1");
           fieldA.setText(add7);   
           String add8 = rs.getString("Address_Line_2");
           aLine2.setText(add8);   
           String add9 = rs.getString("Website");
           fieldW.setText(add9);                     
       }
   }
  catch(Exception e) {
      JOptionPane.showMessageDialog(null, e);
  }
}    
这里是onclick方法

这是我的听众

public Driver() {       
    gui();      
    conn = DbConnect.ConnectDb();
    UpdateTable();

       tableDisplay.addMouseListener(new java.awt.event.MouseAdapter() {
            public void mouseClicked(java.awt.event.MouseEvent evt) {
                tableDisplayMouseClicked(evt);
            }
        });
}
以下是整个驾驶员等级:

import java.awt.BorderLayout;

public class Driver {

    private JFrame f;

    private JPanel p;

    private JTextField fieldBN;
    private JTextField fieldFN;
    private JTextField fieldLN;
    private JTextField fieldP;
    private JTextField fieldE;
    private JTextField fieldA;
    private JTextField aLine2;
    private JTextField fieldW;

    private JLabel labelBN;
    private JLabel labelFN;
    private JLabel labelLN;
    private JLabel labelP;
    private JLabel labelE;
    private JLabel labelA;
    private JLabel labelW;

    private JComboBox relationship;

    private JButton buttonS;

    private JTable tableDisplay;

    String[] relationshipValues = { "Business", "Friend", "Family", "Professional" };

    Connection conn = null;
    ResultSet rs = null;
    PreparedStatement pst = null;

    // Constructor:

    public Driver() {       
        gui();      
        conn = DbConnect.ConnectDb();
        UpdateTable();

           tableDisplay.addMouseListener(new java.awt.event.MouseAdapter() {
                public void mouseClicked(java.awt.event.MouseEvent evt) {
                    tableDisplayMouseClicked(evt);
                }
            });
    }

    public void gui() { 
        f = new JFrame("Contact Book");


        GridBagConstraints c = new GridBagConstraints();  

        p = new JPanel(new GridBagLayout());
        f.getContentPane().add(p, BorderLayout.NORTH);

    c.gridx = 0;
    c.gridy = 0;
    labelBN = new JLabel ("Business Name:");
    p.add(labelBN, c);  

    c.gridx = 1;
    c.gridy = 0;
    fieldBN = new JTextField(10);
    p.add(fieldBN, c);

    c.gridx = 0;
    c.gridy = 1;
    labelFN= new JLabel ("First Name:");
    p.add(labelFN, c);      

    c.gridx = 1;
    c.gridy = 1;
    fieldFN = new JTextField (10);
    p.add(fieldFN, c);

    c.gridx = 0;
    c.gridy = 2;
    labelLN= new JLabel ("Last Name:");
    p.add(labelLN, c);      

    c.gridx = 1;
    c.gridy = 2;
    fieldLN = new JTextField (10);
    p.add(fieldLN, c);

    c.gridx = 0;
    c.gridy = 3;
    labelP = new JLabel ("Phone Number:");
    p.add(labelP, c);

    c.gridx = 1;
    c.gridy = 3;
    fieldP = new JTextField (10);
    p.add(fieldP, c);

    c.gridx = 0;
    c.gridy = 4;
    labelE = new JLabel ("Email:");
    p.add(labelE, c);

    c.gridx = 1;
    c.gridy = 4;
    fieldE = new JTextField (10);
    p.add(fieldE, c);

    c.gridx = 0;
    c.gridy = 5;                            
    labelA = new JLabel ("Address:");
    p.add(labelA, c);

    c.gridx = 1;
    c.gridy = 5;
    fieldA = new JTextField (10);
    p.add(fieldA, c);
    c.gridx = 1;
    c.gridy = 6;
    aLine2 = new JTextField (10);
    p.add(aLine2, c);

    c.gridx = 0;
    c.gridy = 7;
    labelW = new JLabel ("Website:");
    p.add(labelW, c);

    c.gridx = 1;
    c.gridy = 7;
    fieldW = new JTextField (10);
    p.add(fieldW, c);

    c.gridx = 0;
    c.gridy = 8;
    labelW = new JLabel ("Relationship:");
    p.add(labelW, c);

    c.gridx = 1;
    c.gridy = 8;
    relationship = new JComboBox(relationshipValues);
    p.add(relationship, c);

    c.gridx = 1;
    c.gridy = 9;
    buttonS = new JButton("Save:");
    p.add(buttonS, c);

    c.gridx = 0;
    c.gridy = 10;
    tableDisplay = new JTable();
    p.add(tableDisplay, c);


        // pack the frame for better cross platform support
        f.pack();
        // Make it visible
        f.setVisible(true);
        f.setSize(1400,900); // default size is 0,0
        f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    } // End of Gui Method

    private void UpdateTable() {
        try {
        String sql = "SELECT * FROM contact";
        pst = conn.prepareStatement(sql);
        rs = pst.executeQuery();
        tableDisplay.setModel(DbUtils.resultSetToTableModel(rs));
    }

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


    private void tableDisplayMouseClicked(java.awt.event.MouseEvent evt) {                                          

   try {
       int row = tableDisplay.getSelectedRow();
       String tableClick = (tableDisplay.getModel().getValueAt(row, 1).toString());
       String sql = " select * from contact where id = ' " + tableClick + " ' ";
       pst = conn.prepareStatement(sql);
   rs = pst.executeQuery();
       if(rs.next()) {
            System.out.println("hey dude this method is being called.");   
           String add2 = rs.getString("Business_Name");
           fieldBN.setText(add2);   
           String add3 = rs.getString("First_Name");
           fieldFN.setText(add3);   
           String add4 = rs.getString("Last_Name");
           fieldLN.setText(add4);   
           String add5 = rs.getString("Phone");
           fieldP.setText(add5);   
           String add6 = rs.getString("Email");
           fieldE.setText(add6);   
           String add7 = rs.getString("Address_Line_1");
           fieldA.setText(add7);   
           String add8 = rs.getString("Address_Line_2");
           aLine2.setText(add8);   
           String add9 = rs.getString("Website");
           fieldW.setText(add9);                     
       }
   }
  catch(Exception e) {
      JOptionPane.showMessageDialog(null, e);
  }
}    



    public static void main(String[] args) {
        EventQueue.invokeLater(new Runnable() {
           public void run() {
                new Driver();

           }
        });
    } // End main Method

       } // End class Driver

很难知道为什么您在注册
鼠标侦听器时遇到问题,因为并没有足够的上下文来诊断问题

您应该首先在代码中放置put语句,以检查是否调用了该方法,以及查询是否返回值

如果所有其他操作都失败,您应该尝试手动重新设置鼠标侦听器。有关更多详细信息,请参阅

您的查询还在匹配中包含空格

String sql = " select * from contact where id = ' " + tableClick + " ' ";
                                                 ^------------------^-----
这将影响数据库将结果与查询匹配的能力。试着去掉这些

String sql = " select * from contact where id = '" + tableClick + "'";

您是否尝试将
System.out.println(…)
添加到代码中,以检查是否已调用该方法,或者是否已输入
rs.next
块?设置断点并调试该方法如何?好的,很好地调用I systemoutprint,但该方法没有被调用。我对java很在行。。所以我现在需要调用这个方法。所以我只是添加了tableDisplayMouseClicked(java.awt.event.MouseEvent evt)对吗?不,听起来好像事件注册不起作用…所以删除它,然后再做一次?伙计,我删除了它出现的所有地方,而不是右键单击Jtable并再次添加时,什么都没有发生