Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/349.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
Java Swing下拉列表_Java_Swing_Jcombobox_Itemlistener_Dropdownlistfor - Fatal编程技术网

Java Swing下拉列表

Java Swing下拉列表,java,swing,jcombobox,itemlistener,dropdownlistfor,Java,Swing,Jcombobox,Itemlistener,Dropdownlistfor,我使用JavaSwing创建了一个下拉列表。当我选择“跟踪RCM的状态:”时,我想在所选选项旁边创建另一个下拉列表。我应该改用mouseactionlistener吗?我试图完成这样的事情,当我点击菜单选项时,我可以在菜单选项类别下选择另一个列表。例如: 我尝试使用此代码,但无法 if (state == ItemEvent.SELECTED) { ItemSelectable itemS = itemEvent.getItemSelec

我使用JavaSwing创建了一个下拉列表。当我选择“跟踪RCM的状态:”时,我想在所选选项旁边创建另一个下拉列表。我应该改用mouseactionlistener吗?我试图完成这样的事情,当我点击菜单选项时,我可以在菜单选项类别下选择另一个列表。例如:

我尝试使用此代码,但无法

         if (state == ItemEvent.SELECTED)
        {
            ItemSelectable itemS = itemEvent.getItemSelectable();
            String cmd = selectedString(itemS);
            if ( cmd.equals("Keep track of status of RCM:"))
            {
                RCMCombo2.addItem(RCMCombo);
                selectionPanel.add(RCMCombo2);
            }
代码的完整版本如下所示:

    String [] RCM2 = {"Keep track of status of RCM:", "Add and activate RCM", "Remove RCM", 
     "Display the usage statistics for RCM", 
"Update capabilities of RCMs", "Show RCM used most frequently in the last n days",
"Display number of times the RCM was emptied in n hours"};


RCMCombo2 = new JComboBox(RCM2); 
RCMCombo2.addItemListener(itemListener);  
    RCMCombo2.setEditable(false);
    RCMCombo2.setBounds(10,10,10,30);

    //"Updates capabilities of RCM"); Get the location of RCM");

    selectionPanel.add(RCMCombo2);

ItemListener itemListener = new ItemListener() 
{
      public void itemStateChanged(ItemEvent itemEvent) 
      {
        int state = itemEvent.getStateChange();
        //System.out.println((state == ItemEvent.SELECTED) ? "Selected" : "Deselected");
        //System.out.println("Item: " + itemEvent.getItem());
        if (state == ItemEvent.SELECTED)
        {
            ItemSelectable itemS = itemEvent.getItemSelectable();
            String cmd = selectedString(itemS);
            if ( cmd.equals("Keep track of status of RCM:"))
            {
                RCMCombo2.addItem(RCMCombo2);
                selectionPanel.add(RCMCombo2);
            }

任何帮助都将不胜感激。谢谢。

看来你完全走错了方向。我认为您正在将
itemstener
的用法与列表模型的设置混合使用。
看看这个-它应该包含您需要的所有信息。

没有“JAVA GUI”。显然,您正在使用JavaSwing。
selectionPanel.add(RCMCombo2)尝试并
revalidate
repaint
在此之后。似乎
revalidate();重新绘制()
问题=(.您似乎还需要为
RCMCombo2
设置边界。也许可以简要说明您试图完成此任务的目的。这可能不是最理想的解决方案。我尝试使用组合框,但我想在选择组合框中的某个项时创建另一个下拉列表。是否改为使用mouseactionlistener?以及我在选择面板中添加了这个组合框。我试图完成类似的操作,当我单击“菜单选项”时,我可以在“菜单选项”类别下选择另一个列表。我猜您要查找的是“外部”组合框上的一个,它在其事件处理程序中更改了“内部”的模型组合框。更改模型后,您必须触发上述注释中提到的重新绘制。