Java 无法删除搜索的值

Java 无法删除搜索的值,java,swing,odbc,tostring,jtextcomponent,Java,Swing,Odbc,Tostring,Jtextcomponent,下面的类是我的delete类,我想从数据库中删除用户,我有一个Add类和Search类,它们共享同一个数据库private database db 下面的类是我的数据库类,它有remove方法,我正试图将它传递给上面的Delete类 import java.util.*; public class Database {/** * * Map of users keyed on userId */ Map

下面的类是我的delete类,我想从数据库中删除用户,我有一个Add类和Search类,它们共享同一个数据库private database db

下面的类是我的数据库类,它有remove方法,我正试图将它传递给上面的Delete类

import java.util.*;
public class Database 
{/**             
    *   
    * Map of users keyed on userId              
    */
    Map <String, User> users; 


    /**    @Database          
    * the empty map  which would be used to  collect the users.                     
    */
    public Database() 
{      
        users = new HashMap<String, User>();

}



    /**
    * Type for checking users
    */
  public  static void main(String [] args){
             new Database();
            }     

    /** check if the UserID is already in use if so return false, else
     *   add key pair to the Map. 
     *   USERID will be key of map 
     *     @
    */
    public boolean addUser(User userIn) 
    {

        String keyIn = userIn.getUSERID(); 
        if (users.containsKey(keyIn)) 
        { 
            return false; 
        } 
        else 

        { 
            users.put(keyIn, userIn); 
            return true; 
        } 
    }



    /** 
     * @param remove the user with the given useridIn, from the Map
     * check if user was removed and does not equal to no null 
     * @return If the user is not  removed return false
     *  
     *  */
    public boolean removeUser(String useridln) 
    { 
        if (users.remove(useridln)!= null) 
        { 
            return true; 
        } 
        else 
        { 
            return false; 
        } 
    }

    /** 
     * return the number of users in the Map collection  
     * 
     * 
     * */
    public int getTotalNumberOfUsers()
    {
        return users.size();
    }


    /** return the user with the given userid or null if no such user
     * */
    public User getUser (String useridIn)
    {
        return users.get(useridIn);
    }



    /** return the set of users in the collection
     * set is used to store the set of users  and to get the set of keys.
     * iterate through the keys and put each value in the userSetn and return the set of users
     * 
     * 
     * */
    public Set<User> getAllUsers ()
    {  

        Set<User> userSet = new HashSet<User>(); 
        Set<String> theKeys = users.keySet(); 

        for (String userid : theKeys)
        {
            User theUser = users.get(userid);
            userSet.add(theUser);
        }
        return userSet; 


        }   

    public String toString(){

        return users.toString();
    }
}
在Add类中,我可以添加用户

User u = new User(Inputusername.getText(),  selection , age.getText(), inputuserid.getText());
db.addUser(u);
我想从数据库中删除添加的用户,但我不知道为什么不将其删除,因为我已将字符串传递给delete类。

请尝试遵循,特别是关于字段和方法如何以小写字母开头的规则。这将使您的代码更易于阅读

另外,尽量把你的问题表达得更清楚。到底是什么不起作用?错误消息是什么,或者预期行为与实际行为是什么

第一行接缝一般错误=User是什么意思? 但更重要的是:

该方法需要一个字符串,而不是用户对象,因此如果改为传递userID.getText,它应该可以工作


这是你的问题吗?我不确定,因为您也提到删除搜索值,但我看不到搜索字段。

我设法得到了正确答案,我是用用户对象而不是用户id调用它的

 User u =  db.getUser(userID.getText());             
  db.removeUser(userID.getText()); 

欢迎来到SO!1请对输出、代码段和代码使用代码格式。2为了更快地获得更好的帮助,请发布一个。3公共类Delete extends JFrame可能应该改为扩展JDialog。您好,谢谢,但我的代码中确实有,只是我无法删除我添加的内容。是的,下次我会记住的。下次你可以编辑你的问题时,我会记住的。否则,我将期待下次回答。因此,代码中最重要的部分似乎是db.removeUser您没有告诉我们您正在使用哪个数据库库(如果有的话),或者db.removeUser是否是您编写的。很难调试我们看不到的东西。这显然是一个数据库问题,而不是Swing问题。我要问的问题包括…db.getUser是否真的返回了一个对象?如果是,removeUser是如何工作的?是否有任何错误消息?您是否有单元测试表明db.removeUser在不涉及所有gui代码/用户输入的情况下正常工作?抱歉,花了这么长时间才找到如何使用代码格式,我正在尝试调用removeUser方法。谢谢,这是我的错,我没有说清楚,但是thanks@Mohammed阿里:没问题。如果您的问题得到了回答,您可以按说明单击左侧的复选标记来接受答案。而且,如果你的问题已经得到了回答,那么你也没有必要自己发布答案;
User u = new User(Inputusername.getText(),  selection , age.getText(), inputuserid.getText());
db.addUser(u);
    User u = User db.getUser(userID.getText());             
    db.removeUser(u);     
    public boolean removeUser(String useridln) 
 User u =  db.getUser(userID.getText());             
  db.removeUser(userID.getText());