2011-12-31 79 views
0

你好:如何为JTextField添加AutoComplete字符串,从Jtable列中获取自动complte列表。JTextField自动完成

JTextField textfield = new JTextField(); 
JTable table =new JTable(); 

回答

2

正如How to Use Tables, Concepts: Editors and Renderers讨论的,表的默认渲染器是一个JLabel,默认编辑器是一个JTextField。您需要提供一个自定义编辑器,该编辑器使用适用于您的目标域的algorithm,如here所述执行。

+2

+1 http://www.java2s.com/Code/Java/Swing-Components/AutocompleteComboBox.htm – mKorbel 2012-01-01 22:14:02

+0

另请参见@ mKorbel的相关[示例](http://stackoverflow.com/search?q=user% 3A714968 +%5Bjava%5D +自动完成)。 – trashgod 2012-01-01 23:57:19

3

SwingX库有一个非常方便的AutoCompleteDecorator函数。

假设您将JTable列的值复制到名为validValues的ArrayList中。你现在需要对JTextField的myTextField将自动完成如下代码:

AutoCompleteDecorator.decorate(myTextField, validValues, true); 

第三个参数告诉自动完成装饰是否要严格匹配,即用户是否被允许进入之外的其他值的JTable列与否。

+0

swingx的唯一问题是,你只有一个结果(失败).. – 2012-02-07 03:23:27

+0

你是什么意思? – 2012-02-07 19:25:39

+0

@SmartyTwiti:你好我的朋友,有什么想法我可以让'swingX'让我获得不止一个结果?它只允许我一次自动完成,而且我需要更多。谢谢 ! – ron 2012-06-07 00:22:47