Изменение JTable с помощью ActionListener

поэтому у меня проблемы с прослушивателем действий для моего JTable. Java не жалуется, так что это ошибка с моей стороны. Я пытаюсь сделать программное обеспечение для управления отелем.

Я храню комнаты в массиве строк:

private String[][] rooms;
private String[] columnNames = { "Room Number" };

JTable results = new JTable(rooms, columnNames);

JScrollPane scrollPane = new JScrollPane(results);

И затем мой слушатель действий:

searchButton.addActionListener(new ActionListener() {
        @Override
        public void actionPerformed(ActionEvent e) {
            JsonReader reader = new JsonReader("assets/Rooms.txt");
            HotelRoom wanted = makeHotelRoomFromGuiInfo();
            String output = "";
            try {
                List<HotelRoom> allRooms = reader
                        .readHotelRoomObjectsFromFile();
                HotelRoomChooser chooser = new HotelRoomChooser(allRooms);
                List<HotelRoom> acceptable = chooser
                        .chooseRoomByPreferences(wanted);
                if (acceptable.size() == 0) {
                    output += "";
                } else {
                    for (int i = 0; i < acceptable.size(); i++) {
                        output += String.valueOf(acceptable.get(i)
                                .getRoomNumber())
                                + String.valueOf(acceptable.get(i)
                                        .getListOfOccupiedDates()) + ",";
                    }

                }
                for (int i = 0; i < output.length();){
                    rooms[i] = output.split(",");
                    i++;
                }

            } catch (IOException e1) {
                e1.printStackTrace();
            }

        }

person user3443831    schedule 25.03.2014    source источник
comment
поэтому у меня проблемы с прослушивателем действий для JTable. - В чем проблема?   -  person Paul Samsotha    schedule 26.03.2014
comment
Чтобы изменить содержимое таблицы, вы должны использовать методы модели таблицы. Изменение массива комнат, который использовался для построения таблицы, не сработает. Прочитайте учебное пособие по Swing о JTable: docs.oracle.com/javase/tutorial /uiswing/components/table.html   -  person JB Nizet    schedule 26.03.2014


Ответы (1)


Добавить после

for (int i = 0; i < output.length();){
   rooms[i] = output.split(",");
   i++;
}

results.setModel(new DefaultTableModel(rooms,columnNames )
person Toufic    schedule 27.03.2014