[英]JTable Cell Editor function not working with second row
我在jinternalframe中有一个表,就像上次编辑停止后在编辑模式中选择用户按下下一个单元格一样工作,如果是最后一列,则选择进入下一行,列号为-1,但问题出在我加载它工作的类与第二行的第一行它不工作。需要帮助我无法在谷歌上找到关于单元格编辑器的正确信息我需要只使用editingstop和编辑取消方法..
table.getDefaultEditor(String.class).addCellEditorListener(new CellEditorListener() {
@Override
public void editingStopped(ChangeEvent e) {
if (table.getSelectedColumn() == 1
&& table.getValueAt(table.getSelectedRow(), 1).toString().isEmpty()) {
main = new MainWindow();
main.itemdata.setSize(getDesktopPane().getWidth(), getDesktopPane().getHeight());
main.itemdata.setLocation(0, 0);
main.itemdata.show();
getDesktopPane().add(main.itemdata);
main.itemdata.moveToFront();
main.itemdata.searchField.grabFocus();
main.itemdata.searchField.selectAll();
}
else if (table.getSelectedColumn() == 5) {
table.changeSelection(table.getSelectedRow(), 7, false, false);
table.editCellAt(table.getSelectedRow(), table.getSelectedColumn());
}
else if (table.getSelectedColumn() == 7) {
table.changeSelection(table.getSelectedRow(), 8, false, false);
table.editCellAt(table.getSelectedRow(), table.getSelectedColumn());
}
else if (table.getSelectedColumn() == 8) {
table.changeSelection(table.getSelectedRow() + 1, 1, false, false);
table.editCellAt(table.getSelectedRow(), table.getSelectedColumn());
}
}
@Override
public void editingCanceled(ChangeEvent e) {
System.out.println("Editing Cancelled");
}
});
if (table.getSelectedColumn() == 1) {
ItemData itemdata = null;
if (itemdata == null) {
itemdata = new ItemData();
itemdata.setSize(getDesktopPane().getWidth(), getDesktopPane().getHeight());
itemdata.setLocation(0, 0);
itemdata.setVisible(true);
getDesktopPane().add(itemdata);
itemdata.moveToFront();
itemdata.searchField.grabFocus();
itemdata.searchField.selectAll();
System.out.println(table.getSelectedRow() + "+" + table.getSelectedColumn());
}
if (itemdata != null) {
itemdata.show();
}
} else if (table.getSelectedColumn() == 3) {
table.changeSelection(table.getSelectedRow(), 5, false, false);
table.editCellAt(table.getSelectedRow(), table.getSelectedColumn());
System.out.println(table.getSelectedRow() + "+" + table.getSelectedColumn());
}
else if (table.getSelectedColumn() == 5) {
table.changeSelection(table.getSelectedRow(), 7, false, false);
table.editCellAt(table.getSelectedRow(), table.getSelectedColumn());
System.out.println(table.getSelectedRow() + "+" + table.getSelectedColumn());
} else if (table.getSelectedColumn() == 7) {
table.changeSelection(table.getSelectedRow(), table.getSelectedColumn() + 1, false, false);
table.editCellAt(table.getSelectedRow(), table.getSelectedColumn());
System.out.println(table.getSelectedRow() + "+" + table.getSelectedColumn());
} else if (table.getSelectedColumn() == 8) {
table.changeSelection(table.getSelectedRow() + 1, 1, false, false);
table.editCellAt(table.getSelectedRow(), table.getSelectedColumn());
System.out.println(table.getSelectedRow() + "+" + table.getSelectedColumn());
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.