2

我有一个名为“jComboBox18”的 JComboBox 和一个 JTextArea “jTextArea11”。现在我希望每当从“jComboBox18”组合框中选择一个项目时,其相应的描述都会显示在“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();
    } 
}

=====================已编辑============================ ================

肯定会调用该方法。我正在更改另一个组合框的状态,该组合框也在此方法中编写,并且只要从“jComboBox18”中选择项目,它的状态就会成功更改

4

2 回答 2

2

我认为这应该有效。事实上,您应该只需要 setText() 调用。我的猜测是你的函数由于某种原因没有被调用。在您的代码中放置一个断点并确保它被调用。

于 2010-01-20T12:22:50.343 回答
0

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

void itemStateChanged(ItemEvent e);

您如何将 ItemListener 的实例添加到您的 JComboBox ?

编辑:
在阅读您的编辑和评论之后,我能想到的另一种可能性是:您有一个侦听器,当文本区域更新时触发,并且可能撤消在 JComboBox 侦听器中所做的更改。

于 2010-01-20T12:23:53.993 回答