java下拉列表 添加输入_使用下拉列表在Java中创建自动填充文本框

本文介绍了一个在Java中使用自定义类`AutoSuggestor`创建自动补全下拉列表的方法。该类监听`JTextField`输入,根据预设的单词列表提供实时建议。用户可以点击建议项或使用键盘导航。示例代码展示了如何实现这个功能。
摘要由CSDN通过智能技术生成

小编典典

我使用了另一种方法:

它使用一个称为的自定义类,该类AutoSuggestor接受a JTextField,其单词Windowan ArrayList来检查输入的单词,背景颜色和文本颜色以及建议焦点颜色以及不透明度值。通过传递JTextField引用DocumentListener,将添加a,它将执行以下操作:检查键入的单词以及是否显示建议以及是否显示建议。当一个单词键入的DocumentListener意志火wordTyped(String wordTyped)法与当前字所键入或(至少多少字有史以来已经输入),在wordTyped(..)这个词将被检查对那些在AutoSuggestor小号类 字典这是一个基本ArrayList的String这罐如下面的示例所示,可以即时设置:

在此处输入图片说明

(现在你将不得不使用鼠标单击要进行自动补全的词,或使用DOWN横向建议,该文本框,并ENTER使用遍历时选择的建议下键我还没有实现。UP还):

import java.awt.Color;

import java.awt.Dimension;

import java.awt.GridLayout;

import java.awt.Window;

import java.awt.event.ActionEvent;

import java.awt.event.KeyEvent;

import java.awt.event.MouseAdapter;

import java.awt.event.MouseEvent;

import java.util.ArrayList;

import javax.swing.AbstractAction;

import javax.swing.JComponent;

import javax.swing.JFrame;

import javax.swing.JLabel;

import javax.swing.JPanel;

import javax.swing.JTextField;

import javax.swing.JWindow;

import javax.swing.KeyStroke;

import javax.swing.SwingUtilities;

import javax.swing.border.LineBorder;

import javax.swing.event.DocumentEvent;

import javax.swing.event.DocumentListener;

/**

* @author David

*/

public class Test {

public Test() {

JFrame frame = new JFrame();

frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

JTextField f = new JTextField(10);

AutoSuggestor autoSuggestor = new AutoSuggestor(f, frame, null, Color.WHITE.brighter(), Color.BLUE, Color.RED, 0.75f) {

@Override

boolean wordTyped(String typedWord) {

//create list for dictionary this in your case might be done via calling a method which queries db and returns results as arraylist

ArrayList words = new ArrayList<>();

words.add("hello");

words.add("heritage");

words.add("happiness");

words.add("goodbye");

words.add("cruel");

words.add("car");

words.add("war");

words.add("will");

words.add("world");

words.add("wall");

setDictionary(words);

//addToDictionary("bye");//adds a single word

return super.wordTyped(typedWord);//now call super to check for any matches against newest dictionary

}

};

JPanel p = new JPanel();

p.add(f);

frame.add(p);

frame.pack();

frame.setVisible(true);

}

public static void main(String[] args) {

SwingUtilities.invokeLater(new Runnable() {

@Override

public void run() {

new Test();

}

});

}

}

class AutoSuggestor {

p

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值