Java中的Wordnet问题与打印动词

时间:2018-01-02 22:02:55

标签: java wordnet

下面的代码是Java中基于wordnet的程序的一部分,下面的事件在我拥有的GUI上单击按钮时起作用。基本上使用wordnet,你搜索一个单词,然后当它找到单词时,它会显示该单词的所有含义。因为我一直在使用Netbeans," System.out.println"在终端上将所有单词的含义完全打印出来,但是在" jTextField2"上的GUI上。 (我希望它打印的含义)它打印最后一个而不是所有。另一个奇怪的事情是,如果我希望输出从文本字段的顶部向下移动到底部(如果适用),它会将最后一个打印到文本字段的中间。

  private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {                                         

    try {
        JWNL.initialize(new FileInputStream("C:\\jwnl14-rc2\\config\\file_properties.xml"));
        Dictionary wordnet = Dictionary.getInstance();
        String text = jTextField1.getText().trim(); //the word is inputted in jTextField1
        text = text.replace(' ','_');
        jTextField2.setText("Searches for " + text + ":");
        IndexWord verb = wordnet.getIndexWord(POS.NOUN, text);
        Synset[] verbsenses = verb.getSenses();
        for (Synset verbsense : verbsenses) 
        {
             System.out.println(verb + ": " + verbsense.getGloss()); //displays every output in the terminal line
             jTextField2.setText(verb + ": " + verbsense.getGloss()); //only displays the last output from a particular word
        }

    } catch (JWNLException ex) {
        Logger.getLogger(GUI.class.getName()).log(Level.SEVERE, null, ex);
    } catch (FileNotFoundException ex) {
        Logger.getLogger(GUI.class.getName()).log(Level.SEVERE, null, ex);
    }

  } 

如果有人能提供帮助,我们将非常感激。

1 个答案:

答案 0 :(得分:0)

当您调用jTextField2.setText(...)时,您使用新文本 替换 该字段中存在的文字。

JTextField可能不是您想要的 - 它只允许一行文本。 你应该看看JTextArea。