简体   繁体   English

JTable Cell Editor功能不适用于第二行

[英]JTable Cell Editor function not working with second row

i have table in jinternalframe, which works like whenever user presses enter next cell is selected in editing mode after previous editing is stopped, if it is the last column then selection goes to next row with column no.-1,but the problem is when i load the class it works with first row in second row its not working .Need help im unable to find proper information on google about cell editor i need to work with only editingstop and editing cancel method.. 我在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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM