Java Swing下拉列表
我使用JavaSwing创建了一个下拉列表。当我选择“跟踪RCM的状态:”时,我想在所选选项旁边创建另一个下拉列表。我应该改用mouseactionlistener吗?我试图完成这样的事情,当我点击菜单选项时,我可以在菜单选项类别下选择另一个列表。例如: 我尝试使用此代码,但无法Java Swing下拉列表,java,swing,jcombobox,itemlistener,dropdownlistfor,Java,Swing,Jcombobox,Itemlistener,Dropdownlistfor,我使用JavaSwing创建了一个下拉列表。当我选择“跟踪RCM的状态:”时,我想在所选选项旁边创建另一个下拉列表。我应该改用mouseactionlistener吗?我试图完成这样的事情,当我点击菜单选项时,我可以在菜单选项类别下选择另一个列表。例如: 我尝试使用此代码,但无法 if (state == ItemEvent.SELECTED) { ItemSelectable itemS = itemEvent.getItemSelec
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?以及我在选择面板中添加了这个组合框。我试图完成类似的操作,当我单击“菜单选项”时,我可以在“菜单选项”类别下选择另一个列表。我猜您要查找的是“外部”组合框上的一个,它在其事件处理程序中更改了“内部”的模型组合框。更改模型后,您必须触发上述注释中提到的重新绘制。