首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Java Swing中的自动完成文本框

Java Swing中的自动完成文本框是一种用于在用户输入时自动显示匹配项的组件。在Java Swing中,可以使用JTextField和JList组件来实现自动完成功能。

以下是一个简单的示例代码,展示了如何在Java Swing中实现自动完成文本框:

代码语言:java
复制
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;

public class AutoCompleteTextField {
    public static void main(String[] args) {
        JFrame frame = new JFrame("Auto Complete Text Field");
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        frame.setSize(400, 200);

        JTextField textField = new JTextField();
        JList<String> list = new JList<>(new DefaultListModel<>());

        // Add some sample items to the list
        DefaultListModel<String> model = (DefaultListModel<String>) list.getModel();
        model.addElement("Apple");
        model.addElement("Banana");
        model.addElement("Cherry");
        model.addElement("Date");
        model.addElement("Eggplant");

        // Add a key listener to the text field to update the list as the user types
        textField.addKeyListener(new KeyAdapter() {
            @Override
            public void keyReleased(KeyEvent e) {
                String text = textField.getText();
                if (text.isEmpty()) {
                    list.setVisible(false);
                    return;
                }
                list.setVisible(true);

                DefaultListModel<String> model = (DefaultListModel<String>) list.getModel();
                model.clear();

                // Filter the items in the list based on the text in the text field
                for (int i = 0; i< model.getSize(); i++) {
                    String item = model.getElementAt(i);
                    if (item.toLowerCase().contains(text.toLowerCase())) {
                        model.addElement(item);
                    }
                }
            }
        });

        // Add a mouse listener to the list to update the text field when the user selects an item
        list.addMouseListener(new MouseAdapter() {
            @Override
            public void mouseClicked(MouseEvent e) {
                if (e.getClickCount() == 1) {
                    int index = list.locationToIndex(e.getPoint());
                    if (index != -1) {
                        String item = list.getModel().getElementAt(index);
                        textField.setText(item);
                        list.setVisible(false);
                    }
                }
            }
        });

        // Add the text field and list to a panel and add the panel to the frame
        JPanel panel = new JPanel();
        panel.setLayout(new BorderLayout());
        panel.add(textField, BorderLayout.NORTH);
        panel.add(list, BorderLayout.SOUTH);
        frame.add(panel);

        frame.setVisible(true);
    }
}

这个示例代码创建了一个包含JTextField和JList的简单窗口。当用户在JTextField中输入文本时,JList会根据输入的文本过滤其中的项目,并显示匹配的项目。当用户单击JList中的项目时,JTextField的文本将更新为所选项目。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

自动完成文本框(AutoCompleteTextView)

image.png 目录 自动完成文本框 AutoCompleteTextView控件是Android实现自动完成文本框功能,常常和Adapter搭配使用....MultiAutoCompleteTextView控件是多行自动完成文本框,常常用来制作本地邮箱联想....android:dropDownHorizontalOffset 设置下拉菜单于文本框之间水平偏移量 android:dropDownHeight 设置下拉菜单高度 android:dropDownWidth...设置下拉菜单宽度 android:singleLine 设置单行显示文本内容 android:dropDownVerticalOffset 设置下拉菜单于文本框之间垂直偏移量 实战1(AutoCompleteTextView...MultiAutoCompleteTextView.CommaTokenizer()); } } 运行效果 image.png 参考 MultiAutoCompleteTextView多文本选取 Android

1.6K30
  • 自动完成文本框AutoCompleteTextView实现快速输入

    一、认识AutoCompleteTextView AutoCompleteTextView是自动完成文本框,从EditText派生而出,实际上它也是一个文本编辑框,但它比普通编辑框多了一个功能:...当用户输入一定字符之后,自动完成文本框会显示一个下拉菜单,供用户从中选择,当用户选择某个菜单项之后,AutoCompleteTextView按用户选择自动填写该文本框。...-- 定义一个自动完成文本框,指定输入一个字符后进行提示 --> <AutoCompleteTextView android:id="@+id/auto_actv"...AutoCompleteTextView 和 MultiAutoCompleteTextView,接下来在程序为它们绑定同一个Adapter,这意味着两个自动完成文本框提示项完全相同,只是它们表现行为略有差异...新建AutoCompleteTextViewActivity.java文件,加载上面新建布局文件,具体代码如下: package com.jinyu.cqkxzsxy.android.listviewsample

    1.5K70

    Java Swing动态删除组件

    一直以来都不喜欢JavaGUI程序,界面丑陋,而且感觉功能也不强大,但是为了跨平台也没办法!     今天在完成一个JDialog,界面中有删除按钮,用户点击后删除特定组件。...其实,自己Java Swing也是边学边用,搞了一下午,自己先使用removeAll()方法删除组件,然后实验了什么repaint()方法,validate()都不行。    ...网上也没搜到资料,最终瞎折腾了一下午找到了方法,但是对于其中原理还是不太清楚。    ...(); this.contentPanel.setVisible(true);     addComponent()方法是我自己写动态添加组件方法。...再使用removeAll()方法后必须调用setVisible()才行,要不然无法完成重新添加,具体原因我也不知道。     写出来与大家分享,如果有类似问题可以参考下!

    2.1K30

    JAVA学习Swing概述JFrame学习

    package com.swing; import java.awt.Color; import java.awt.Container; import java.awt.event.WindowAdapter...; /**  *1:Swing组件通常被称作"轻量级组件";  *  *2:窗体作为Swing应用程序组件承载体,处于非常重要位置,Swing中常用窗体包括  *JFrame,JDialog... *  *3:JFrame窗体是一个容器,它是Swing程序各个组件载体,可以将JFrame看作是承载这些  *Swing组件容器  *  *4:读者大致应该有这样一个概念  *Swing组件窗体通常和组件容器相关...,所以在JFrame对象创建完成后,  *需要调用getContentPane()方法将窗体转换为容器,然后在容器添加组件  *或设置布局管理器,通常这个容器用来包含和显示组件,如果需要将组件添加到容器...,然后可以设置容器布局, package com.swing; import java.awt.Color; import java.awt.Container; import javax.swing.JFrame

    1.6K90

    Android高级组件AutoCompleteTextView自动完成文本框使用详解

    自动完成文本框(AutoCompleteTextView),用于实现允许用户输入一定字符后,显示一个下拉菜单,供用户从中选择,当用户选择某个选项之后,按用户选择自动填写该文本框。...:popupBackground 下拉列表背景 下面实现带自动提示功能搜索框: 效果如图所示: ?...android.widget.Button; import android.widget.Toast; public class MainActivity extends Activity { //此字符串是要在下拉菜单显示列表项...savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); //获取自动完成文本框...(this,android.R.layout.simple_dropdown_item_1line,COUNTRIES); textView.setAdapter(adapter);//为自动完成文本框设置适配器

    2.9K10

    VS Code 自动完成

    当然今天不是扯 vscode 更新节奏很快梗,而是扒一扒它自动完成,上一篇文章已经介绍过,自动完成和 typings 紧密相关。...如上图,简单地 declare 下就能解决这个问题,这个过程可以称作 define ,将上述 declare 代码抽到一个 .d.ts 结尾文件单独维护,这个文件叫声明文件(declaration...这个时候我们 typings 隆重登场,它可以解决几乎所有 definition 问题,唯一蛋疼地方是要安装一下,以及各种奇怪命令行参数。...VS Code definition definition 作用当然远不止给 ts 本身来用,编辑器可以利用它来做非常强大代码提示。 下图就是安装 definition 之前和之后效果。...definition 当然在其他编辑器也有类似的实现,但体验没有哪个能比得上 vscode 。

    1.3K10

    VS Code 自动完成

    当然今天不是扯 vscode 更新节奏很快梗,而是扒一扒它自动完成,上一篇文章已经介绍过,自动完成和 typings 紧密相关。...如上图,简单地 declare 下就能解决这个问题,这个过程可以称作 define,将上述 declare 代码抽到一个 .d.ts 结尾文件单独维护,这个文件叫声明文件(declaration file...这个时候我们 typings 隆重登场,它可以解决几乎所有 definition 问题,唯一蛋疼地方是要安装一下,以及各种奇怪命令行参数。...VS Code definition definition 作用当然远不止给 ts 本身来用,编辑器可以利用它来做非常强大代码提示。 下图就是安装 definition 之前和之后效果。...definition 当然在其他编辑器也有类似的实现,但体验没有哪个能比得上 vscode 。

    1.7K60

    Java Swing Document类详解

    内容 在最简单级别,文本可以建模为线性字符序列。 为了支持国际化,Swing文本模型使用unicode字符。 文本组件显示字符序列通常称为组件内容 。...要引用序列位置,使用坐标是两个字符之间位置。 如下图所示,文本文档位置可以称为位置或偏移。 这个位置是从零开始。 ?...在该示例,如果文档内容是序列“The quick brown fox”,如上图所示,则单词“The”之前位置为0,并且单词“The”之后位置和之前位置它后面的空格是3.序列“The”整个字符序列称为范围...以下方法与文档内容变异有关: insertString(int, java.lang.String, javax.swing.text.AttributeSet) remove(int, int) createPosition...与属性相关方法是: getProperty(java.lang.Object) putProperty(java.lang.Object, java.lang.Object) 有关Document

    2.1K41

    Java 2 图形设计卷Ⅱ- SWING》第2章 Swing基本知识

    参考链接: 对Java中派生类方法更严格访问 第2章 Swing基本知识    本章介绍开发Swing小应用程序和应用程序时要用到Swing基本知识。  ...2.1.3 应用程序    例2-2所示应用程序与例2-1所示小应用程序在功能上是完成相同。它们都把JLabel一个实例添加到它们根窗格内容窗格。  ...例2-12 列出了图2-11所示小应用程序代码  例2-12把重量组件添加到Swing内部窗体    import java.awt.*;  import java.awt.event.*;  import...首先,我们要讨论为什么Swing是线程不安全,然后介绍在Swing开发过程单线程设计所带来结果。  让我们面对这个事实,甚至在java,开发多线程应用程序也是不容易。...例2-14 从另一个线程更新组件正确方法(演示图)    import javax.swing.*;  import java.awt.*;  import java.awt.event.*;

    2.5K20

    JAVA学习Swing部分JDialog对话框窗体简单学习

    package com.swing; import java.awt.Color; import java.awt.Container; import java.awt.event.ActionEvent...; import java.awt.event.ActionListener; import javax.swing.JButton; import javax.swing.JDialog; import...窗体时Swing组件对话框,  * JDialog功能就是是从一个窗体中弹出另一个窗体,就像是在使用浏览器时弹出的确定对话框一样  *  * 2:JDialog窗体和JFrame窗体类似,在使用时也需要调用...getContentPane()方法将  * 窗体转化为容器,然后在容器设置窗体特性  *  * 3:JDialog有五种构造方法,可以用来指定标题,窗体,和模式对话框  * @author biexiansheng...        jl.setHorizontalAlignment(JLabel.CENTER);//将标签文字置于标签中间位置         container.add(jl);//将标签添加到容器

    1.8K70

    Android开发高级组件之自动完成文本框(AutoCompleteTextView)用法示例【附源码下载】

    本文实例讲述了Android开发高级组件之自动完成文本框(AutoCompleteTextView)用法。...分享给大家供大家参考,具体如下: 通常来说自动完成文本框(AutoCompleteTextView)从EditText派生而出,实际上他也是一个编辑框,但他比普通编辑框多了一个功能:当用户输入一定字符后...,自动完成文本框会显示一个下拉菜单,供用户从中选择,当用户选择了某个菜单项过后,AutoCompleteTextView就会按用户选择自动填写该文本框。...自动完成文本框(AutoCompleteTextView),用于实现允许用户输入一定字符后,显示一个下拉菜单,供用户从中选择,当用户选择某个选项之后,按用户选择自动填写该文本框。...","jb51ZaLou.Cn", "jb51脚本下载","jb51软件下载","www.zalou.cn","ZaLou.Cn"}; onCreate()方法获取自动完成文本框,并为自动完成文本框设置适配器

    1K10

    JS - 可自动伸缩高度文本框

    文本框默认现象: textarea如果设置cols和rows来规定textarea尺寸,那么textarea默认宽高是这俩属性设置值,可以通过鼠标拖拽缩放文本框尺寸。...textarea如果设定了宽高,那么如果文本超出框高度,会自动出现滚动条。而不会撑开文本框高度。 如果什么也不设置,最小宽高很窄很细,随便输入内容也会超出文本框隐藏,且自动增加滚动条。 ?...因为文本框宽高固定死了, 还是超出出现了滚动条。 怎么让文本框初始化设置一定高度,但是文字超出时自动跟随内容高度伸缩?...而且如果用户一直不点击别的地方让textarea失去焦点,这个事件就永远不会触发,文本框高度就不变。 比如输入过程,就成了这样: ? 然后点击别的地方才会一次性展开: ?...答:就是计算文本框滚动高度,即内容高度 具体怎么做? 答:键盘每次弹起时候,获取文本框内容高度添加给文本框高度,即可让其实时跟随内容自适应。 内容高度用什么属性计算?

    9.4K20

    基于java swing设备管理系统

    二.开发环境 开发环境:jdk          运行环境:jvm 运行平台:无限制        编辑器:eclipse 语言:java            工具:swing 数据库:mysql 三...(5)scrap负责显示已报废设备信息 选项卡equipment和buy界面由ManageFrame负责创建,对应方法为createEquipmentPanel()和createBuyPanel...(),通过返回自定义JPanel匿名内部类创建 选项卡running、repair、scrap界面分别是InfoRunPanel、InfoRepairPanel、InfoScrapPanel类实例...ComponentUtil 包含自定义一些常用swing组件 ConnectionUtil 数据库连接类 DatabaseXmlParser 解析db.xml,获取数据库配置信息 DateChooser...(2) 录入购买设备信息   输入设备信息 ?   在equipment查看设备 ? (4) 管理设备状态   例:设置状态为run ? ? (5) 查看设备状态 ?

    2.6K81
    领券