问题遇到的现象和发生背景
我输入广州和上海可以正常显示
当我输入上海和广东的时候表格信息没刷新
问题相关代码,请勿粘贴截图
public void addTable(Object[][] arr) {//
Object[] title = {"日期","航班号","出发城市","出发机场","起飞时间","到达城市","到达机场","降落时间","用时(分钟)","座位数","票价(元)"}; //表头
if(model!=null&&model.getColumnCount()!=0){
model.setRowCount( 0 );
}
table = addJTable(title, arr);
Manager.pan2.setVisible(false);
Manager.pan2.setVisible(true);
//添加表格获取行数响应、然后获得当前的航班号
table.addMouseListener(new MouseAdapter() {
@Override
public void mouseClicked(java.awt.event.MouseEvent e) {
selectedFlight = String.valueOf(arr[table.getSelectedRow()][1]);//二维数组对应行列
}
});
}
public JTable addJTable(Object[] title, Object[][] arr) {
System.out.println("1");
//设定一个模式,只可编辑一部分
model = new DefaultTableModel(arr, title) {
public boolean isCellEditable(int row, int column) {
//默认设定航班号所在列不可以修改
return false;
}
};
model.fireTableDataChanged();
JTable table = new JTable(model);
table.getTableHeader().setPreferredSize(
new Dimension(table.getTableHeader().getPreferredSize().width, 30)); //设置表头的宽
JScrollPane jsp = new JScrollPane(table);//把表格放到滚动条面板中
Manager.pan2.setLayout(new BorderLayout()); //设置普通面板为边界布局,从而覆盖整个普通面板
Manager.pan2.add(jsp, BorderLayout.CENTER); //把滚动条面板添加到普通面板上
DefaultTableCellRenderer r = new DefaultTableCellRenderer(); //表格数据居中显示
r.setHorizontalAlignment(JLabel.CENTER);
table.setDefaultRenderer(Object.class, r);
table.setEnabled(true);
//设置是否可编辑
return table;
}
}
运行结果及报错内容
我的解答思路和尝试过的方法
我想要达到的结果
同步后端数据对表格进行刷新