根据JComboBox选择添加JList项目



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

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上显示的是"人类最好的朋友",只是举个例子。

我该怎么做*这是一个填字游戏顺便说一下

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

  • 您需要某种方法将JComboBox中的值与要显示的值相关联,Map可能会这样做,但我个人更喜欢使用POJO。有关更多详细信息,请参阅收藏追踪
  • 您需要知道JComboBox选择何时更改。类似ActionListener的东西可能会起作用。有关更多详细信息,请参阅如何使用操作和如何使用组合框
  • 选择更改后,您需要从组合框(getSelectedItem)中获取所选项目,使用关联的Map查找值,并可能使用JList#addItem将值添加到JList,假设您不想删除现有项目,否则,只替换JList的模型会更快。有关详细信息,请参阅如何使用列表

你可能还想看看如何使用滚动窗格

您还应该避免使用null布局,像素完美布局在现代ui设计中是一种幻觉。有太多的因素会影响零部件的单个尺寸,而您无法控制这些因素。Swing被设计为以布局管理器为核心进行工作,丢弃这些管理器将导致问题层出不穷,您将花费越来越多的时间来纠正

最新更新