SWT中使用Swing 线程问题

胖狗_ 2014-07-10 10:31:56
在Swing线程中加入了一个Table,这个Table,根据树形结构来进行联动,选择不同的节点会Table的数据会跟着变化。

现在的问题是每次选择不同的节点,Table不会跟着变化,怎么回事? 我deBug跟了一下。每次节点选择后,执行到Swing线程就自动跳过了,! 蛋疼!


Frame myFrame = SWT_AWT.new_Frame(composite);
SwingUtilities.invokeLater(new Runnable()
{
@SuppressWarnings("serial")
@Override
public void run()
{
JTable road_table = new JTable();
JScrollPane jScrollPane1 = new JScrollPane();
road_table.removeAll();
Vector<Vector<String>> roadData = InitTableData(targetBom);
road_table.setModel(new javax.swing.table.DefaultTableModel(roadData, table_title)
{
@Override
public boolean isCellEditable(int rowIndex, int columnIndex)
{
boolean[] canEdit = new boolean[]
{ false, false, false, false, false, false, false, true, true, true, false, true, true, true, true, true, true };
return canEdit[columnIndex];
}

});
road_table.repaint();

TableColumnModel columnModel = road_table.getColumnModel();

// 重新第7和第8列
JComboBox com1 = new JComboBox();
com1.addItem("男");
com1.addItem("女");\
TableColumn col7 = columnModel.getColumn(7);
col7.setCellEditor(new DefaultCellEditor(com1));

// WWS
JComboBox com2 = new JComboBox();
com2.addItem("001");
com2.addItem("002");
TableColumn col8 = columnModel.getColumn(8);
col8.setCellEditor(new DefaultCellEditor(com2));

road_table.setBounds(0, 0, 791, 399);
road_table.getTableHeader().setReorderingAllowed(false);

// 设置列宽

columnModel.getColumn(4).setMinWidth(0);
columnModel.getColumn(4).setMaxWidth(0);
columnModel.getColumn(14).setMinWidth(0);
columnModel.getColumn(14).setMaxWidth(0);
columnModel.getColumn(15).setMinWidth(0);
columnModel.getColumn(15).setMaxWidth(0);
columnModel.getColumn(16).setMinWidth(0);
columnModel.getColumn(16).setMaxWidth(0);

jScrollPane1.setViewportView(road_table);
myFrame.add(jScrollPane1);
}
});

...全文
96 回复 打赏 收藏 转发到动态 举报
写回复
用AI写文章
回复
切换为时间正序
请发表友善的回复…
发表回复

50,530

社区成员

发帖
与我相关
我的任务
社区描述
Java相关技术讨论
javaspring bootspring cloud 技术论坛(原bbs)
社区管理员
  • Java相关社区
  • 小虚竹
  • 谙忆
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧