Java swing中,如何实现自动补全提示的文本框,最好提供demo实例。 大致如下图所示:

 我来答
dingqiaowu
2011-04-25 · TA获得超过200个赞
知道小有建树答主
回答量:612
采纳率:0%
帮助的人:434万
展开全部
这个得自己写个组件,去实现,Demo也没时间帮你写,写个类去继承JComponent 然后再监听JTextField
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
daay1986
2011-04-25 · TA获得超过6018个赞
知道大有可为答主
回答量:2208
采纳率:0%
帮助的人:1476万
展开全部
public class NewClass {

public static void main(String[] args) {
JFrame frame = new JFrame();
JComboBox bar = new JComboBox();
Component com = bar.getEditor().getEditorComponent();
final String[] datas = new String[]{"123123", "234123", "345123", "456123", "567123", "678123"};
final JTextComponent component = (JTextComponent) com;
final JList p = new JList(datas);
component.addKeyListener(new KeyAdapter() {

@Override
public void keyReleased(KeyEvent e) {
if (component.getText() == null || component.getText().length() == 0) {
return;
}
for (int i = 0; i < datas.length; i++) {
if (datas[i].toLowerCase().startsWith(component.getText())) {
p.setSelectedValue(datas[i], true);
String str = component.getText();
component.setText(datas[i]);
component.setSelectionStart(str.length());
component.setSelectionEnd(datas[i].length());
}
}
}
});
bar.setEditable(true);
frame.getContentPane().add(bar, BorderLayout.NORTH);
frame.getContentPane().add(new JScrollPane(p), BorderLayout.CENTER);
frame.setDefaultCloseOperation(3);
frame.setVisible(true);
}
}
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
gaoyongbo026
2011-04-25 · TA获得超过297个赞
知道小有建树答主
回答量:227
采纳率:100%
帮助的人:108万
展开全部
一个数据表,一个事件,一条模糊查询语句而已,自动补全没那么高深,哎
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 2条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式