简体   繁体   中英

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..

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());

            }

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

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