【问题标题】:Search an arraylist by the contents of a JTextField - arraylist.contains(jtextfield)通过 JTextField 的内容搜索数组列表 - arraylist.contains(jtextfield)
【发布时间】:2012-01-12 18:02:26
【问题描述】:

目前,我正在尝试编写一个系统,该系统专注于将数据输入到列表和数组列表中,并实现搜索和排序功能。

目前在我的系统上,我有:

存储数据的类 从数据存储类中的对象获取数据的数组列表类。 最后,一个 swing GUI 类,其中包含一个显示 Arraylist 的 JList。

我正在尝试使用 JButton actionlistener 搜索 arraylist,然后将搜索结果输出到 JList。

JButton 将获取 JTextField 的内容,并检查字符串是否存在于 ArrayList 中。

首先我的问题是,如何在 arraylist 类中创建搜索函数,并在单独的类中调用 JTextField 的内容?

其次,我是否需要先将 jtextfield 转换为字符串,然后才能在 arraylist 上调用 .contains 方法?

第三,一旦实现了搜索功能,如果搜索到的文本存在,我将如何从arraylist中选择一条记录

这是我的数据存储类: http://pastebin.com/hwyD8r1j

我的数组列表类: http://pastebin.com/d3ftLsJb

我不指望你们为我写它,虽然那很好,哈哈。

但任何关于如何在我的数组列表中实现此功能的指针或见解都将不胜感激,

哦,如果你需要我发布我的 GUI 课程,尽管问。

【问题讨论】:

    标签: java search sorting arraylist jlist


    【解决方案1】:

    在 JTextField 上调用“getText”以获取他们输入的字符串。您基本上会执行以下操作。

    // Somehow you've initialized your array list
    List<String> data = ...;
    
    // within your action listener - invoked when the button is clicked.  You'll need to
    // make sure the textField is "final"
    String selected = textfield.getText();
    // Linear search through your strings for one matching your text
    for (String datum : data) {
      if (selected.contains(datum)) {
        // do whatever you want here; you found a match
      }
    }
    

    【讨论】:

    • 这会进入我在 actionlistener 上的 GUI 类,还是当 JList 调用 arraylist 或进入我的 arraylist 类?
    • 查看模型视图控制器模式 - 将帮助您决定代码应该驻留在哪里。 IMO您可能不需要自定义arraylist类。你要添加什么?
    猜你喜欢
    • 1970-01-01
    • 2011-11-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-02-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多