Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/user-interface/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在JavaSwing中更新JTextArea?_Java_User Interface_Swing_Jtextarea - Fatal编程技术网

如何在JavaSwing中更新JTextArea?

如何在JavaSwing中更新JTextArea?,java,user-interface,swing,jtextarea,Java,User Interface,Swing,Jtextarea,我有一个名为“jcombox18”的JComboBox和一个名为“jTextArea11”的JTextArea。现在,我希望无论何时从“jCombox18”组合框中选择一个项目,其相应的描述都会显示在“jTextArea11”文本区域中 我已经向JComboBox添加了适当的侦听器,但是JTextArea没有显示任何文本。我写的代码如下: private void jComboBox18ItemStateChanged(java.awt.event.ItemEvent evt) { O

我有一个名为“jcombox18”的JComboBox和一个名为“jTextArea11”的JTextArea。现在,我希望无论何时从“jCombox18”组合框中选择一个项目,其相应的描述都会显示在“jTextArea11”文本区域中

我已经向JComboBox添加了适当的侦听器,但是JTextArea没有显示任何文本。我写的代码如下:

private void jComboBox18ItemStateChanged(java.awt.event.ItemEvent evt) {

    Object item = jComboBox18.getSelectedItem();

    if(item != null) {
        ems.logic.Process selectedProcess = (ems.logic.Process)item;

        jTextArea11.setText(selectedProcess.getProcessDescription());
        jTextArea11.updateUI();
        jTextArea11.revalidate();
        jTextArea11.validate();
    } 
}
===============================编辑===========================================

确实正在调用该方法。我正在更改另一个组合框的状态
它也是用这个方法编写的,只要从“jcombox18”中选择了项,它的状态就会成功地改变。

我认为这应该是可行的。实际上,您应该只需要setText()调用。我的猜测是,由于某种原因,您的函数没有被调用。在代码中添加断点,并确保它被调用

在显示的代码中,您的方法命名为
jcombox18itemstatechanged
。您确定正在调用此方法吗。JComboBox的ItemListener应该实现接口ItemListener,该接口声明子类应该实现以下方法。

如何将ItemListener实例添加到JComboBox

编辑:
在阅读了您的编辑和评论之后,我能想到的另一个可能性是:
您有一个在更新textarea时触发的侦听器,它可能正在撤消JComboBox侦听器中所做的更改

远离问题:我真的希望在您的实际开发代码中变量的名称不同。直接解决问题:您能否验证,如果您选择了一个新项,该代码是否被调用?因此,该方法所执行的另一个函数实际上被执行。因此,我们必须进一步调查。该代码由if子句保护。这是一个项目!=null,或以其他方式询问:是否输入了if分支?是的,输入了if分支,并且它还执行设置textarea的行,但它不反映任何更改。这对我来说也很奇怪。我曾多次使用类似类型的GUI,但这种事情从未发生在我身上。奇怪。另一个想法可能是,jTextArea11不指向所讨论的TextArea。可能是错误的变量,或者该变量后来被重新分配,并引用到另一个TextArea。除此之外,我目前没有调试选项。
void itemStateChanged(ItemEvent e);