问题
1) I was able to add a JTextField
to the JFrame
, and I initialized the class Java2sAutoTextField as given in Auto Complete JTextField
(Swing / AWT / SWT / JFace forum at JavaRanch).
2) I initialized the list and field inside the JFrame
constructor, as shown below.
List possible = new ArrayList();
possible.add("Austria");
possible.add("Italy");
possible.add("Croatia");
possible.add("Hungary");
Java2sAutoTextField autoCompleter = new Java2sAutoTextField(possible);
3) The problem that arises is this: Even though I have initialized the Java2sAutoTextField
, how can I apply auto completing to the JTextField
?
回答1:
Adding the main()
method below to Java2sAutoTextField produced the expected result after typing "H". It's not crucial for this example, but Swing GUIs should be constructed on the EDT.

public static void main(String[] args) {
EventQueue.invokeLater(new Runnable() {
@Override
public void run() {
List<String> list = new ArrayList<String>(Arrays.asList(
"Austria", "Croatia", "Hungary", "Italy"));
JFrame f = new JFrame("AutoTest");
f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
f.add(new Java2sAutoTextField(list));
f.pack();
f.setLocationRelativeTo(null);
f.setVisible(true);
}
});
}
来源:https://stackoverflow.com/questions/3673807/implementing-java2sautotextfield-to-a-jtextfield