Я пытаюсь добавить автозаполнение к моему текущему коду, поэтому после бесчисленных раз Я решил попробовать SwingX
.SwingX идентифицирует только указанное слово из массива слов и не позволяет выбирать другие слова
Код компилируется, работает, однако у меня все еще есть некоторые «незначительные» проблемы.
Вот мой код:
public class GuiHandler extends javax.swing.JFrame {
private javax.swing.JTextField jtfBoxOfCurrentPath;
// more irrelevant code
private void afterXMLfileWasUploaded() {
String[] tab = {"abc", "def", "ghjk", "lmnop", "qrst", "rstuv", "wxyz"};
JList list = new JList(tab); //data has type Object[]
// jtfBoxOfCurrentPath.setToolTipText(""); // I removed this line , this is when I don't want to use auto-completion
AutoCompleteDecorator.decorate(list, jtfBoxOfCurrentPath, ObjectToStringConverter.DEFAULT_IMPLEMENTATION);
jtfBoxOfCurrentPath.addActionListener(new java.awt.event.ActionListener()
{
public void actionPerformed(java.awt.event.ActionEvent evt)
{
boxOfCurrentPathActionPerformed(evt);
}
});
// and more code
Это общий вид моей программы: . Как упоминалось по имени метода afterXMLfileWasUploaded
, после того, как я нажал кнопку open XML file
, файл загружается и анализируется в программу (без проблем).
Но когда я пытаюсь написать что-то в поле Current path
, то:
Я могу только написать слова из массива
tab
вышеЯ не могу написать любое другое слово или символ которые начинаются с символа, который не перечислен в
"ABC", "Def", "ghjk", "lmnop", "QRST", "rstuv", "WXYZ"
Я не могу на самом деле стереть любое слово, которое было написано с использованием массива
tab
выше.
Что случилось? любая помощь будет очень признателен
С уважением
Я попробовал ваш пример, код не позволяет ничего вводить, но слова, которые были введены с помощью 'listSomeAnotherString.add (.. .) ' – ron
еще раз вы пытались переключиться на' someTextField.setStrict (false) '???? или 'someComboBox.setStrict (false)' ???, я не могу поверить :-) – mKorbel
Хорошо, это работает :) так большое спасибо, во-первых. Но, вопрос в том, могу ли я использовать этот класс для манипулирования полем, которое я упоминал выше, в моей программе с объектом 'JTextField jtfBoxOfCurrentPath'? – ron