2012-06-06 125 views
0

我試圖將自動完成添加到我當前的代碼中,因此經過無數次 我決定嘗試SwingXSwingX只識別單詞列表中的單詞列表,並且不會讓其他單詞被選中

代碼編譯,工作,但我仍然有一些「次要」的問題。

這裏是我的代碼:

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 

這是我的程序的普遍看法:XML search engine。正如方法afterXMLfileWasUploaded的名稱所述,在我點擊open XML file按鈕後,文件被上傳並解析到程序中(沒有問題)。

但是當我嘗試寫一些東西在框中Current path,則:

  • 我只能寫上面

  • tab陣列的話,我不能寫任何其他文字或字符即開始與未在

    「ABC」 中列出的人物, 「高清」, 「ghjk」, 「lmnop」, 「QRST」, 「rstuv」, 「WXYZ」

  • 我實際上無法擦除使用上面的tab數組編寫的任何單詞。

怎麼了?任何幫助將是非常讚賞

問候

回答

2

我只能寫在標籤陣列字以上

  • 不知道,你必須使用當前版本的SwingX 1.6。3

  • 檢查,如果是退格不動(不SwingX專家),

  • 可以幫你檢查後great member of SwingX team @kleopatra

  • 或在他們的論壇,你可以搜索相關的相關信息

我不能寫任何其他字或字符開頭的字符不在

org.jdesktop.swingx.autocomplete.Configurator#configureTextComponent(),通知API談論DocumentModelJTextComponents


  • 我最喜歡的解決方法是(沒有關於提到的問題和潛在的bug)AutoComplete JComboBox/JTextField(Java5的和更高版本),

  • 那裏你可以很容易設置自動完成JComboBox/JTextField #setStrict(boolean flag)

  • 與退格,分衆沒有問題,存儲最後插入符

+0

我試過你的榜樣,代碼不允許進入那種事用'listSomeAnotherString.add(把話說.. )' – ron

+1

再次嘗試切換到'someTextField.setStrict(false)'?或'someComboBox.setStrict(false)'???,我不敢相信:-) – mKorbel

+0

好吧,那工作:)非常感謝,第一。但是,問題是,我可以使用這個類來操縱上面提到的字段,在我的程序中,使用對象'JTextField jtfBoxOfCurrentPath'? – ron

相關問題