java - Phonebook.java 项目的搜索功能

标签 java arrays search

所以我已经在这个项目 PhoneBook.java 程序上工作了一段时间了。该程序打开一个 .txt 文件并将其导入到按姓氏、名字排序的列表中。我正在尝试编写一个搜索函数,该函数会打开一个窗口,要求您输入名称,然后单击“确定”后,它应该选择搜索的索引。我不明白为什么我的以下 searchMI 代码不起作用。我很感激你能给我的任何帮助。

public class PhoneBook extends Frame implements ActionListener, ItemListener {

MenuItem newMI, openMI, saveMI, saveAsMI, exitMI;
MenuItem searchMI, deleteMI, updateMI, newEntryMI, sortMI;
String fileName;
List nameList;
List numberList;
TextField lastName, firstName, phoneNumber;

// implementing ActionListener
public void actionPerformed(ActionEvent event) {
    Object source = event.getSource();
    if(source == newMI) 
    {
        nameList.removeAll();
        numberList.removeAll();
        fileName = null;
        display(-1);
        setTitle("White Pages")
    }
    else if(source == searchMI) 
    {
        String searchName = JOptionPane.showInputDialog(this,
                            "Please enter a name (last first) to search:");
        System.out.println("Name to search: " + searchName);
        int index = nameList.getSelectedIndex();
        String name = lastName.getText().trim() + " " + firstName.getText().trim();
            for(int i=0; i!=index; i++){
                if(nameList.equals(searchName)){
                    nameList.select(index);
                }
                else
                {
                    System.out.println("Error searching for the name: " + searchName);
                }
        ...

最佳答案

建议

  • 为什么这样:int index = nameList.getSelectedIndex(); ?看起来所选索引不会为您提供任何有用的信息。
  • 这永远不会起作用:if(nameList.equals(searchName)){ 。列表不能等于字符串。
  • 而是使用 for 循环,循环遍历保存字符串的任何集合,我猜它是 nameList并将每个项目保存的字符串与输入的字符串进行比较。
  • for 循环应从 i = 0 开始至i < nameList.getItemCount() (或者 nameList.size() 如果它是 java.util.List)。
  • 没有 else block ,else{ System.out.println("Error searching for the name: "...在 for 循环内部。这样做会多次打印 else 语句。
  • 您最好使用 Swing 库组件而不是 AWT。
  • 您需要更好地格式化您发布的代码。每个语句都应该有自己的行。仔细且规则的缩进很重要。
  • 由于您在 GUI 中使用组件,因此可能不需要该 JOptionPane。您可以从文本字段之一获取搜索字符串吗?

关于java - Phonebook.java 项目的搜索功能,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23378204/

相关文章:

java - Struts 2 表单处理的奇怪问题

java - 用java实现游戏树和数据结构?

Java Swing Worker 没有停止

javascript - 在数组数组中查找一个值

python - 制作 0 到 nxn 矩阵并将其 reshape 为对

java - 生成密码字母表

php - MySQL多关键字搜索算法

在注册表中搜索键 - JScript

java - 需要 MatOfMatch 对象做什么?

mysql - 选择与不同值匹配的行来检索公共(public)字段