Создание экземпляра объекта из jComboBox - PullRequest
0 голосов
/ 11 апреля 2020

Я заполняю jComboBox одним атрибутом каждого объекта, в данном случае, именем пользователя. Когда пользователь выбрал имя пользователя и затем нажал кнопку, я бы хотел, чтобы currentUser был назначен объекту пользователя, которого они выбрали, но я действительно изо всех сил пытаюсь это сделать. Мой код, по сути, извлекает данные из текстового файла, причем каждая строка создается как объект (с разными атрибутами, такими как имя пользователя, имя и т. Д. c.), Затем ComboBox заполняется именем user.username. Сейчас я пытаюсь создать экземпляр объекта под названием currentUser, который имеет все атрибуты пользователя с выбранным именем пользователя.

public static ArrayList<User> readUserFile() throws FileNotFoundException{
        Scanner s = new Scanner(new File("UserAccounts.txt"));
        ArrayList<User> userList = new ArrayList<User>();
        while (s.hasNextLine()) {
            String line = s.nextLine();
            String[] details = line.split(",");
            user = new User(Integer.parseInt(details[0].trim()),details[1].trim(),details[2].trim(),
                    Integer.parseInt(details[3].trim()),details[4].trim(),details[5].trim(),
                    Permission.valueOf(details[6].trim()));
            userList.add(user);
        }
        s.close();
        for (User user: userList) {
            String username = user.username;
            System.out.println(username);
            CasMainFrame.cbLogin.addItem(user.username);
        }
        return userList;
    }

Это соответствующий код для моего gui класса .

        cbLogin = new JComboBox();
        cbLogin.setBounds(303, 165, 181, 27);
        panelLogin.add(cbLogin);

        btnLogin = new JButton("Login");
        btnLogin.addMouseListener(new MouseAdapter() {
            @Override
            public void mouseClicked(MouseEvent e) {
                //code to create currentUser
            }
        });
        btnLogin.setBounds(334, 200, 117, 29);
        panelLogin.add(btnLogin);

1 Ответ

0 голосов
/ 11 апреля 2020

Вы должны определить комбинированный список так, чтобы его элементы имели тип User. Важно, чтобы пользовательский класс реализовал toString, которая возвращает имя пользователя. Таким образом, в выпадающий список вы просто добавляете пользовательский экземпляр. Вы используете Netbeans?

...