Переименуйте заголовок таблицы.

В моем JTable я хочу переименовать заголовок таблицы, используя опцию правой кнопки мыши. Щелчок правой кнопкой мыши по любому заголовку дает возможность переименовать заголовок. Но когда я это делаю, он переименовывает выбранный заголовок столбца. Поэтому я должен сначала щелкнуть левой кнопкой мыши по этому столбцу, а затем продолжить обработку. Есть ли способ, когда я щелкаю правой кнопкой мыши по любому столбцу, он также выбирается так, чтобы после переименования его значение было переименовано.

Мой прослушиватель действий выглядит следующим образом::

int column = jTable1.getSelectedColumn();
                        if (column == -1) {
                            return;
                        }
                        if (column == 0) {
                            JOptionPane.showMessageDialog(jTable1, "You can not rename this column.");
                            return;
                        }
                        boolean blag = true;
                        String sColumnName = null;
                        while (blag) {

                        sColumnName = (String) JOptionPane.showInputDialog(jTable1, "Enter Column Name", "Add Column", JOptionPane.INFORMATION_MESSAGE, null, null, null);
                        if (sColumnName == null) {
                            return;
                        }
                        if (sColumnName.trim().equalsIgnoreCase("")) {
                            JOptionPane.showMessageDialog(jTable1, "Column name can not be blank.");
                            blag = true;
                        } else {
                            blag = false;
                        }
                        Vector vColumns = new Vector();
                        for (int i = 0; i < defaultTableModel.getColumnCount(); i++) {
                            vColumns.add(defaultTableModel.getColumnName(i));
                        }
                        if (vColumns.contains(sColumnName)) {
                            JOptionPane.showMessageDialog(jTable1, "Column name " + sColumnName + " already exist.");
                            return;
                        }
                    }
                    int viewColumn = jTable1.convertColumnIndexToView(column);
                    int totalColumn = defaultTableModel.getColumnCount();
                    Object[] headers = new Object[totalColumn];
                    for (int i = 0; i < totalColumn; i++) {
                        if (i == column) {
                            headers[i] = sColumnName;
                        } else {
                            headers[i] = defaultTableModel.getColumnName(i);
                        }
                    }
                    defaultTableModel.setColumnIdentifiers(headers);
5
задан Ashish Pancholi 11 April 2012 в 12:48
поделиться