繁体   English   中英

根据JComboBox选择添加JList项目

[英]Add JList Items based on JComboBox selection

当我单击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上“大动物,大耳朵和长鼻子”。 并在Vertical JList“人的最好的朋友”上,举一个例子。

我该怎么做呢? *这是一个填字游戏顺便说一句。

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

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

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

您还应该避免使用null布局,像素完美布局是现代ui设计中的一种幻觉。 有太多因素会影响组件的单个大小,您无法控制。 Swing旨在与布局经理为核心一起工作,舍弃这些问题不会导致问题和问题的终结,您将花费越来越多的时间来尝试纠正

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM