Java 通过ActionListener更改JTable

Java 通过ActionListener更改JTable,java,swing,jtable,actionlistener,Java,Swing,Jtable,Actionlistener,所以我的JTable的动作侦听器有问题。 Java没有抱怨,所以这是我的错误。 我想做一个酒店管理软件 我将房间存储在字符串数组中: private String[][] rooms; private String[] columnNames = { "Room Number" }; JTable results = new JTable(rooms, columnNames); JScrollPane scrollPane = new JScrollPane(results); 然后我的

所以我的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();
            }

        }
searchButton.addActionListener(新ActionListener(){
@凌驾
已执行的公共无效操作(操作事件e){
JsonReader=newjsonreader(“assets/Rooms.txt”);
HotelRoom wanted=makeHotelRoomFromGuiInfo();
字符串输出=”;
试一试{
列出所有房间=读卡器
.readHotelRoomObjectsFromFile();
HotelRoomChooser chooser=新建HotelRoomChooser(所有房间);
列表可接受=选择器
.chooseRoomByPreferences(需要);
如果(可接受的.size()==0){
输出+=“”;
}否则{
对于(int i=0;i
在后面添加

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

results.setModel(new DefaultTableModel(rooms,columnNames )
for(int i=0;i
“所以我的JTable操作侦听器有问题。”-有什么问题?要修改表包含的内容,必须使用表模型的方法。修改用于构造表的房间数组将不起作用。请阅读关于JTable的swing教程: