Arhn - архитектура программирования

Jlist не отображает мои элементы в строке

JButton btnAdd = new JButton("add");
    btnAdd.addActionListener(new ActionListener() {
        public void actionPerformed(ActionEvent e) {
            Main selectedValue = (Main)courseList.getSelectedValue();
            if(selectedValue !=null){
                orderList.addElement(chosenList);
        }
        }
    });

я создал addButton, который добавляет элементы из одного Jlist в другой Jlist. Однако, когда я запускаю свое приложение и нажимаю кнопку добавления, это дает мне эту ошибку в моем выбранном списке Jlist:

javax.swing.JList[,-2008,0,2255x182,alignmentX=0.0,alignmentY=0.0,border=,flags=50332008,maximumSize=,minimumSize=,preferredSize=,fixedCellHeight=-1,fixedCellWidth=-1,horizontalScrollIncrement= -1, selectionBackground=javax.swing.plaf.ColorUIResource[r=184,g=207,b=229],selectionForeground=sun.swing.PrintColorUIResource[r=51,g=51,b=51],visibleRowCount=8 ,layoutOrientation=0]


  • Похоже, вы добавляете весь JList как один элемент. Перебирайте элементы в нем и добавляйте каждый по отдельности. 30.03.2016
  • Может быть, вы хотели сделать orderList.add(selectedValue); ? 30.03.2016
  • я изменил его на «orderList.add(selectedValue);» но это также неправильно, так как addElement красный и говорит, что этот «addElement (JList) в типе DefaultListModel‹JList› не применим для аргументов (Main)» 30.03.2016

Ответы:


1

Я считаю, что метод addElement следует вызывать для экземпляра класса DefaultListModel.

Если вы ранее добавили экземпляр DefaultListModel в качестве модели для вашего orderList, вам следует использовать следующий код, чтобы добавить элемент в ваш orderList.

Object selectedValue = courseList.getSelectedValue();
DefaultListModle listModel = (DefaultListModle)orderList.getModel();
listModel.addElement(selectedValue);

Если вы не установили какой-либо экземпляр класса, который реализует ListModel, вы должны инициализировать свой orderList следующим образом:

DefaultListModel listModel = new DefaultListModel();
orderList = new JList(listModel);
// or
orderList.setModel(listModel);

Взгляните на Как использовать списки из руководств по Java.

30.03.2016
  • orderList.getModel(); неверно также говорит об этом. Метод getModel() не определен для типа DefaultListModel‹JList› 30.03.2016
  • @mikeb Итак, теперь я вижу, что ваш orderList имеет тип DefaultListModel, а не JList. Вам нужно опубликовать больше кода, чтобы мы могли увидеть, что происходит в вашем коде. Если orderList является DefaultListModel, вы сможете добавить элемент, используя orderList.addElement(selectedValue). Две вещи: правильно назвать свои переменные, например, изменить orderList на orderListModel, и показать мне, что такое Main. 30.03.2016

  • 2

    То, что вы видите в своем списке, — это не ошибка, а значение toString() для вашего объекта chosenList. Возможно, вы хотите сделать следующее:

    orderList.addElement(selectedValue);
    

    Вместо:

    orderList.addElement(chosenList);
    
    30.03.2016
  • я сделал изменение, но это просто дает мне еще одну ошибку, говорящую следующее: метод addElement(JList) в типе DefaultListModel‹JList› неприменим для аргументов (Main) 30.03.2016
  • Новые материалы

    Коллекции публикаций по глубокому обучению
    Последние пару месяцев я создавал коллекции последних академических публикаций по различным подполям глубокого обучения в моем блоге https://amundtveit.com - эта публикация дает обзор 25..

    Представляем: Pepita
    Фреймворк JavaScript с открытым исходным кодом Я знаю, что недостатка в фреймворках JavaScript нет. Но я просто не мог остановиться. Я хотел написать что-то сам, со своими собственными..

    Советы по коду Laravel #2
    1-) Найти // You can specify the columns you need // in when you use the find method on a model User::find(‘id’, [‘email’,’name’]); // You can increment or decrement // a field in..

    Работа с временными рядами спутниковых изображений, часть 3 (аналитика данных)
    Анализ временных рядов спутниковых изображений для данных наблюдений за большой Землей (arXiv) Автор: Рольф Симоэс , Жильберто Камара , Жильберто Кейрос , Фелипе Соуза , Педро Р. Андраде ,..

    3 способа решить квадратное уравнение (3-й мой любимый) -
    1. Методом факторизации — 2. Используя квадратичную формулу — 3. Заполнив квадрат — Давайте поймем это, решив это простое уравнение: Мы пытаемся сделать LHS,..

    Создание VR-миров с A-Frame
    Виртуальная реальность (и дополненная реальность) стали главными модными терминами в образовательных технологиях. С недорогими VR-гарнитурами, такими как Google Cardboard , и использованием..

    Демистификация рекурсии
    КОДЕКС Демистификация рекурсии Упрощенная концепция ошеломляющей О чем весь этот шум? Рекурсия, кажется, единственная тема, от которой у каждого начинающего студента-информатика..