如何绑定jtable的列取决于javajtable中前一列的值
我有五列的表格。在组合框中有两个从数据库动态绑定的列。一个组合的选定值将影响另一个组合的值。我的基本问题是 第1列(组合框)用户选择其中一个 第2列(根据第1列显示结果,用户选择第2列选项之一 第3列显示的结果取决于第2列 我尝试使用列单元格编辑器。但该方法的问题是,若选择了列,则所有结果将显示在所有行中。 我想为不同的行和列提供不同的结果如何绑定jtable的列取决于javajtable中前一列的值,java,swing,event-handling,jtable,Java,Swing,Event Handling,Jtable,我有五列的表格。在组合框中有两个从数据库动态绑定的列。一个组合的选定值将影响另一个组合的值。我的基本问题是 第1列(组合框)用户选择其中一个 第2列(根据第1列显示结果,用户选择第2列选项之一 第3列显示的结果取决于第2列 我尝试使用列单元格编辑器。但该方法的问题是,若选择了列,则所有结果将显示在所有行中。 我想为不同的行和列提供不同的结果 int col = jTblItemInfo.getSelectedColumn(); int row = jTblItemInfo.getSele
int col = jTblItemInfo.getSelectedColumn();
int row = jTblItemInfo.getSelectedRow();
if (col == 2) {
TableColumn colum = jTblItemInfo.getColumnModel().getColumn(3);
JComboBox batch_box = new JComboBox();
String item_name = jTblItemInfo.getModel().getValueAt(row, col - 1).toString();
int group_id = 0;
if (item_name == null || item_name.equals("")) {
} else {
int item_id = new com.inventorymgmt.dao.ItemInfoDAO().getItemIdByName(item_name);
group_id = new com.inventorymgmt.dao.ItemInfoDAO().getGroupIDByItemID(item_id);
for (String result : new com.inventorymgmt.dao.BatchPriceDAO().getBatchNO(item_id)) {
batch_box.addItem(result);
}
colum.setCellEditor(new DefaultCellEditor(batch_box));
}
if (!(group_id <= 0)) {
jTblItemInfo.setValueAt(new com.inventorymgmt.dao.ItemGroupDAO().getItemGroupNameById(group_id), row, 6);
}
DefaultTableCellRenderer cellRenderer = new DefaultTableCellHeaderRenderer();
cellRenderer.setToolTipText("Choose Batch No");
colum.setCellRenderer(cellRenderer);
} else if (col == 4) {
System.out.println("i n column 4");
String item_name = jTblItemInfo.getModel().getValueAt(row, 1).toString();
String batch_no = jTblItemInfo.getModel().getValueAt(row, col - 1).toString();
int item_id = new com.inventorymgmt.dao.ItemInfoDAO().getItemIdByName(item_name);
if (item_name == null || batch_no == null) {
} else {
String[] str = //code to a
// String price_str = str[0] + "";
jTblItemInfo.setValueAt(str[0], row, col);//price
jTblItemInfo.setValueAt(str[1], row, 5);//expiry date
}
}
int col=jTblItemInfo.getSelectedColumn();
int row=jTblItemInfo.getSelectedRow();
如果(列==2){
TableColumn column=jTblItemInfo.getColumnModel().getColumn(3);
JComboBox批处理_box=新JComboBox();
字符串item_name=jTblItemInfo.getModel().getValueAt(行,列-1.toString();
int group_id=0;
if(item_name==null | | item_name.equals(“”){
}否则{
int item_id=new com.inventorymgmt.dao.ItemInfoDAO().getItemIdByName(item_名称);
group_id=new com.inventorymgmt.dao.ItemInfoDAO().getGroupIDByItemID(item_id);
for(字符串结果:new com.inventorymgmt.dao.BatchPriceDAO().getBatchNO(项id)){
批次箱添加项(结果);
}
column.setCellEditor(新的DefaultCellEditor(批处理盒));
}
如果(组中的ID听起来像是代码中的错误,你没有显示;-)考虑显示一个SSCCE,它演示了你正在做什么以及它是如何出错的。