首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >phonebook.java项目的搜索功能

phonebook.java项目的搜索功能
EN

Stack Overflow用户
提问于 2014-04-30 09:35:50
回答 1查看 583关注 0票数 1

所以我已经在这个项目的PhoneBook.java项目上工作了一段时间了。该程序打开一个.txt文件,并将其导入到按姓、名排序的列表中。我不能理解为什么我下面的searchMI代码不能工作。感谢你能给我的任何帮助。

代码语言:javascript
复制
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);
                }
        ...
EN

回答 1

Stack Overflow用户

发布于 2014-04-30 09:44:45

建议

  • 为什么这样:int index = nameList.getSelectedIndex();?看起来选定的索引不会在这里给你任何有用的信息。
  • 这永远不会起作用:if(nameList.equals(searchName)){。这样做将打印出else语句,更好的做法是使用Swing库组件,而不是AWT。
  • ,您将希望更好地格式化您发布的代码。每条语句都应该有自己的一行。小心和规则的缩进matter.
  • Since你正在使用你的图形用户界面中的组件,你可能不需要JOptionPane。您是否可以从其中一个文本字段中获取搜索字符串?
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/23378204

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档