当前位置: 首页 > 知识库问答 >
问题:

遇到JComboBox和TreeMap的问题

丁高峯
2023-03-14

我的问题是,我想将地图的键显示为JComboBox,它只显示其中一个,这段代码只是我遇到问题的部分,如果读者在我的代码中没有看到问题,我将在这里列出其他类。因此,基本上,我将键作为指令对象,将值作为一组学生对象(一个教师有多个学生),当我创建JComboBox时,它只显示其中一个键。我尝试了一种不同的排序,因为我认为它可能只使用最后添加的键(就像键被替换一样),但这不是我能看到的问题。不管怎么说,这越来越长了,这是我的代码。

    //Test Objects
    TreeSet<Student> inst1Student = new TreeSet<Student>();
    TreeSet<Student> inst2Student = new TreeSet<Student>();
    TreeSet<Student> inst3Student = new TreeSet<Student>();
    inst1Student.add(new Student("Jane Doe"));
    inst2Student.add(new Student("Jhon Smith"));
    inst3Student.add(new Student("Students Name"));
    Instructor inst1 = new Instructor("Instructors Name1", inst1Student);
    Instructor inst2 = new Instructor("Instructors Name3", inst2Student);
    Instructor inst3 = new Instructor("Instructors Name3", inst3Student);
    theList.put(inst1, inst1.getStudents());
    theList.put(inst3, inst3.getStudents());
    theList.put(inst2, inst2.getStudents());
    //Make combo box
    instructors = new JComboBox<>();
    getInstructorsArrayList();
    for (int i = 0; i < theInstructors.size(); i++){
        System.out.println(theInstructors.get(i));
        instructors.addItem(theInstructors.get(i));
    }
    panel3.add(instructors);
    instructors.addActionListener(new ActionListener() {
        public void actionPerformed(ActionEvent e) {
            System.out.println("You Clicked Someone");
        } 
    });

引用这是我拥有的getInstructorsArrayList()方法。

public static void getInstructorsArrayList() {
    for (Entry<Instructor, Set<Student>> entry : theList.entrySet()) {
        if (entry.getKey() != null) {
            theInstructors.add(entry.getKey().getName());
        }
    }
}

讲师班:

package psl_Tracker;

import java.util.Set;

public class Instructor implements Comparable<Instructor> {

    private static String name = null;
    private static Set<Student> students = null;

    public Instructor(String name, Set<Student> students) {
        Instructor.name = name;
        if (students != null) {
                   Instructor.students = students;
        }
    }
    public String getName() {
        return name;
    }

    public Set<Student> getStudents() {
        return students;
    }
    @Override
    public int compareTo(Instructor other) {
        return getName().compareTo(other.getName());
    }
}

再次感谢任何帮助,我觉得这是一个我没有看到的小错误。任何人看到的任何语法错误请告诉我(这是我最讨厌的)。

共有1个答案

上官扬
2023-03-14

我会将ArrayList转换为数组并默认将其添加到组合框构造函数

public JComboBox generateCombo (Arraylist<String> toConvert){
    String[] arrayListToArray = toConvert.toArray(new String[toConvert.size()]);
    JComboBox testbox = new JComboBox(arraylistToArray);
}
 类似资料:
  • 当我尝试运行SBT时,我得到以下消息:

  • 安装 cuda 遇到了很多问题,这里简单记一下 下载 cudnn download cuda-toolkit 版本 查看 cuda 版本: cat /usr/local/cuda/version.txt 查看 cudnn 版本: cat /usr/local/cuda/include/cudnn.h | grep CUDNN_MAJOR -A 2 查看显卡信息: lspci | grep VGA

  • 我从来没有用过红宝石,我想我应该试一试。安装似乎进行得很顺利(我想)。在我使用创建服务器后,麻烦就开始了,然后去设置路由,这样新项目就会出现,而不是红宝石欢迎屏幕。它产生的误差是 未初始化常量欢迎控制器 我在route controller中设置了路径,如下所示 我漏了一步吗?我正在使用installrails的说明在Windows7上安装rails。通用域名格式 这是请求的完整跟踪

  • 当尝试使用pip和conda安装Dash包时,我收到一个错误,说明找不到该包。所有其他软件包都可以使用pip安装 仪表板组件:https://plot.ly/dash/getting-started 例外情况:回溯(最近一次调用last):文件“C:\Users\Owner\Anaconda3\lib\site packages\pip\basecommand.py”,第215行,主状态为self

  • 本文向大家介绍Redis和Lua使用过程中遇到的小问题,包括了Redis和Lua使用过程中遇到的小问题的使用技巧和注意事项,需要的朋友参考一下 问题 在 Redis 里执行 get 或 hget 不存在的 key 或 field 时返回值在终端显式的是 (nil),类似于下面这样 如果在 Lua 脚本中判断获取到的值是否为空值时,就会产生比较迷惑的问题,以为判断空值的话就用 nil 就可以了,然鹅

  • 我很难让JavaFX应用程序在IDE之外运行。我正在使用IntelliJ IDEA 2019.3,并使用OpenJDK-12进行编译。JavaFX sdk版本为11.0.2,我使用外部库JFoenix-9.0.8和JSerialComm-2.6.0。操作系统是Windows10,安装了JDK14,我可以运行使用命令行以相同方式构建的非JavaFX应用程序。当我尝试从命令行运行mu JavaFX.j