根据JComboBox选择添加JList项

时间:2015-03-05 20:45:54

标签: java swing

当我点击JComboBox项目时,我希望它在两个不同的Jlists中显示句子:

crosswordCategories = new JComboBox();

    crosswordCategories.addItem("Animals");
    crosswordCategories.addItem("Roman Empire");
    crosswordCategories.addItem("Geography");
    Object comboSelected = crosswordCategories.getSelectedItem();


    horizList = new JList();  
    horizList.setBounds(35, 430, 420, 170);
    horizList.setBackground(Color.white);
    horizList.setBorder(BorderFactory.createEtchedBorder(1));
    add(horizList);


    vertList = new JList();  
    vertList.setBounds(490, 430, 420, 170);
    vertList.setBackground(Color.white);
    vertList.setBorder(BorderFactory.createEtchedBorder(1));
    add(vertList);

如果我点击“动物”类别,它应显示在水平JList“大动物,大耳朵和长鼻子”上。并且在垂直JList“人类最好的朋友。”上,举一个例子。

我该怎么做? *这是一个填字游戏btw。

编辑:应用程序启动时,JLists为空。

1 个答案:

答案 0 :(得分:2)

  • 您需要某种方法将JComboBox中的值与您想要显示的值相关联,Map可能会做的事情,但我更喜欢个人使用POJO。有关详细信息,请参阅Collections Trail
  • 您需要知道JComboBox选择何时发生变化。像ActionListener这样的东西可能会做。有关详细信息,请参阅How to Use ActionsHow to Use Combo Boxes
  • 选择更改后,您需要从组合框(getSelectedItem)中获取所选项目,使用关联的Map查找值,并可能使用JList#addItem将值添加到JList,假设您不想删除现有项目,否则,更换JList模型会更快。有关详细信息,请参阅How to Use Lists

您可能还想查看How to Use Scroll Panes

您还应该避免使用null布局,像素完美布局是现代ui设计中的错觉。影响组件个体大小的因素太多,您无法控制。 Swing旨在与布局管理器一起工作,放弃这些将导致问题和问题的终结,您将花费越来越多的时间来纠正